The focus of this course is on the extensibility of the C++ library. Directions are provided to enable the C++ programmer to write safer and more efficient programs. After the course, the student will be able to judge which language constructions would better be avoided, or preferably be used. The student will be able to write programs in the style of the standard library of the language. Initially, the original C++98 style will be used. But the increased comfort using the C++11 and C++14 extensions will be demonstrated as well.
Course attendees receive the following documentation:
- The course documentation consists of a book (in English), plus a student pack with copies of the presentation, exercises and solutions to the exercises.
- Shortly after the course the student will receive a certificate as a proof of participation.
- The C++ language offers many possibilities of which experienced programmers can benefit. As an example: the C++ library is designed in such a way that experienced programmers can extend and augment it in a style similar to its basic design. Although extending the library is not intrinsically difficult, some rules must be obeyed.
- Applying specific standard constructs, and proper use of certain language facilities, will make efficient programs. Seasoned C++ programmers have documented these techniques, which is of great help for those who are less experienced.
Experienced programmers looking to learn from the experience of others, and/or wishing to write a specialised library of their own design.
Onderstaande voorkennis is vereist:
Programmeren in C++ (English course) of vergelijkbare kennis.
The student must be proficient in C++, and is well capable of using techniques such as inheritance, dynamic binding, etc.
Creating safe classes with the help of the Copy Constructor etc. should be part of your routine.
The prerequisite knowledge can be obtained via our course “The C++ programming language”. But this knowledge requires at least a few month of building up experience after that initial course.
BijzonderhedenTopics not covered are: Basic C++ knowledge. This course is for advanced students only! The course does not cover Object Oriented Analysis and Design, nor does it cover Design Patterns.
- The course focusses on ways to extend the standard C++ library in a “standardised” way, and on “sound basic knowledge”. Lab exercises are provided to obtain hands-on experience during the course.
- Containers, iterators. What is a container, an iterator.
- Responsibility for proper storage allocation. How to handle exceptions.
- Creating templates. Which requirements do templates put implicitly on the classes with which they are instantiated.
- Designing test programs to exercise a template class
- Inheritance and complications thereof. Pros and cons of multiple inheritance and private inheritance. Are virtual operators = and == a good idea? Virtual destructor. Definitions in the base class of a pure virtual function.
- Locales: what are they, why do they exist, how to use them and how to extend.
- I/O: creating your own manipulators and I/O-channels. Reading objects from the class hierarchy via virtual constructors and factories.
- C++ and performance. Best practices for programming in C++ where high efficiency is required.
- STL, the Standard Template Library. Advanced possibilities with STL. Binders, reverse and insert iterators. Requirements for objects that must be stored in an STL container. Requirements for containers created by yourself, for iterators and algorithms. Iterator traits. Creating your own STL-compliant container and its iterators.
- * This course event is guaranteed to run.
- *A course with falls under the Summer Academy action.
Cursus: Advanced C++ (English course)
Vul onderstaand formulier in en je ontvangt meer informatie over de incompany- en maatwerkmogelijkheden van deze cursus.
We are happy to help you. Please fill in the request form below and you will receive the requested information as soon as possible.
- De cursus Programmeren in C++ (English course)
- De cursus De programmeertaal Go
- De cursus De programmeertaal C
- De cursus Programmeren in C++ (English course) (Virtual)
- De cursus Design Patterns in C++, Java en C# (Virtueel)
- De cursus De programmeertaal Go (Virtueel)
- De cursus Design Patterns in C++, Java en C#
- De cursus The C programming language (English course) (Virtual)
- De cursus What’s new in C++11 and C++14
- De cursus What’s new in C++17