page header photo
share Twitter share LinkedIn

Course Advanced C++

This training is OS platform-independent

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. Read more >>>

Target audience

  • Experienced programmers looking to learn from the experience of others, and/or wishing to write a specialised library of their own design.
Duration: 4 days       
Price € 2250,- plus VAT       


This course will be scheduled by request only, or as an in-company training. Our course administration maintains a waiting list of interested individuals. Joining that list is without obligation whatsoever.

More information about this course

Writing more efficient and safer programs.

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.

Prerequisite knowledge

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.

Technical content of the course

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.

Topics covered

  • 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.

Topics 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 documentation consists of a book (in English), plus a student pack with copies of the presentation, exercises and solutions to the exercises.


After the course the student will receive a certificate.

Valid XHTML 1.0 Strict   Valid CSS2