Advanced C++ Programming  Course

This course will take you to the next level as a C++ programmer. You will learn advanced C++ programming concepts, and techniques to make your code more efficient and more portable.

Duration: 5 days. Courses are presented from 08:30 to 16:30.
Investment: R10,900.00 excluding VAT per delegate. Prices valid from 1 February 2018.
Venue: The Incus Data Training Venue in Centurion, Pretoria. Courses can also be presented on-site for 5 or more delegates.
Dates: Please check the course schedule for the next available date. You can also contact us at tel: (+27) 12 666 2020 or email us at to find out about dates.

Download the Advanced C++ Programming course contents in PDF format

Please fill in this form if you would like us to contact you about your training requirements, or if you would like to be kept informed of dates for the Advanced C++ Programming course.

Fields marked with * are required.

Please enter your name

Please enter your surname

Please enter a valid phone number eg. 0126662020

Please enter a valid email address

If you would like us to email you a formal quote, please complete the following:

Type in 'Private' if you are paying for yourself.

Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

Audience: Is This The Right Course For Me?

You should attend the Advanced C++ Programming course if:

  • You are a C++ programmer and you want to learn about the advanced aspects of the C++ language.
  • You are a C++ programmer and you want to learn to write better C++ code.
  • You are an engineer working with embedded systems written in C++.

Prerequisites: Am I Ready For The Course?

Before you attend the Advanced C++ Programming course:

  • You must have attended our Standard C++ Programming course or already be comfortable with the fundamentals of the C++ programming language.
  • You should have at least 6 months practical experience programming in C++.

Please ensure you meet the prerequisites for the Advanced C++ Programming Course before you attend the course. Read the importance of course prerequisites to understand why this is necessary.

Objectives: What Will I Learn?

After you have completed the Advanced C++ Programming course, you will be able to:

  • Understand and use advanced C++ programming techniques.
  • Understand and use the standard template library.
  • Apply object-oriented techniques in C++ programs.

Technical Contents: What Does The Course Cover?

  • Overview of C++ and ISO C++11 Standard.
  • C and C++ differences, portability issues and using C legacy code in C++.
  • Structures and classes.
  • Function overloading.
  • Operators as functions.
  • Default parameters.
  • Variable number of parameters.
  • Constants and macros.
  • Inline functions.
  • Namespaces syntax and usage.
  • The standard library namespace.
  • Practical issues and tips for using namespaces.
  • Understanding and using references.
  • Run time type information (RTTI).
  • Name mangling.
Exception Handling
  • Syntax, structure and usage.
  • Exception handling options.
  • Advanced error handling.
  • Memory allocation error handling.
  • Classes for exception handling.
Pointers and Memory Management
  • Performance issues.
  • Understanding new, delete and other memory allocation options in various environments.
  • Overloading new and delete.
  • Dangling pointers.
  • Smart pointer classes.
  • Reference counting.
  • Shallow vs deep copying.
Classes, Inheritance and Polymorphism
  • Inheritance concepts.
  • Multiple inheritance.
  • Virtual functions and the vtable.
  • Abstract classes.
  • Pure virtual functions.
  • Access specifiers and usage.
  • Private or protected constructors and/or destructors.
  • Canonical classes.
  • Iterator and envelope classes.
  • Class factories.
  • Overview.
  • Template definition syntax.
  • Function templates.
  • Template parameters.
  • Class templates.
  • Deriving from templates.
  • Smart pointers with templates.
Standard Template Libraries
  • Principles and design issues.
  • Practical use of the STL containers, algorithms, data models, adaptors and allocators.
  • Tradeoffs.
Object-Oriented Design Principles
  • Overview of Object Orientation and the Unified Modelling Language.
  • Class relationships and associations.
  • Containment, composiition and aggregation.
  • HAS, USES and IS relationships.
  • Interfaces and abstract classes.

Testimonials: What Other Delegates Say About This Course

"The course was very good & the lecturer (Renier) is great. He knows the course inside out. I wish I could take his C++ mind."

B. Majola, Net 1   (Lecturer: Renier)

"Excellent!! I've learned a lot. The most important thing for me is that I've realised the power of the C++ language."

B. Khuele, Net 1   (Lecturer: Renier)

"The lecturer made a special effort to explain elements that were not clear & understood by the audience. He also provided web pages with useful quick references."

P. de Souza, CSIR   (Lecturer: Renier)

"Excellent course, providing insight into the inner working of C++, which most learning material & sources don't provide. Will recommend the course to others."

T. Pillay, CSIR   (Lecturer: Renier)

"Great presentation and explanation of the core fundamentals of the C++ programming language"

N. Moloisane, CSIR   (Lecturer: Renier)

"Amazed by the expertise and knowledge settled in one human being - indeed a walking library."

R. Broodryk, Denel Dynamics   (Lecturer: Renier)

"Enjoyable, learnt much"

B. van Ellewee, SAAB   (Lecturer: Renier)

"Definitely will recommend this course to friends and colleagues."

S. Maharaj, Denel Dynamics   (Lecturer: Renier)

" Material of the course was very challenging. But lecturer has a good ability to detect the level of understanding of the audience. It was a very intense and instructive week. I am very very very satisfied!!! "

J. Dass, Concurrent Systems   (Lecturer: Renier)

"This training was very impressive compared to the others that I have completed. I have realised the importance of attending the training step by step."

A. Phoshoko, Standard Bank   (Lecturer: Renier)

"Incus Data is a great place for learning and I am very satisfied with everything."

J. Cilliers, Momentum   (Lecturer: Renier)

"The course content and way in which it was presented was superb! Obviously, practice is required. The environment complemented the learning experience in every way."

K. Gema, Parsec   (Lecturer: Renier)

"Renier has an extensive knowledge of the course, and excellent teaching skills. There is a lot I have learned."

T. Mashilwane, Parsec   (Lecturer: Renier)

"Great course, learnt a lot! Tips & Tricks very usefull."

R. de Nysschen, Parsec   (Lecturer: Renier)

"Thanks - wish we had such a knowledgable person on our team"

J. van der Merwe, Telkom   (Lecturer: Renier)

"Dankie!! C++ is baie powerfull, dankie vir jou interpretasie en insig. Dit kom slegs met jare se ondervinding."

M. Beukes, Telkom   (Lecturer: Renier)

How Do I Book?

It's easy to book: Fill in our course enrolment form (editable PDF file) and fax it to us at (+27) 12 666 2021 or email it to us at

After we have received your booking, we will send you a confirmation that you are booked on the course, an invoice and directions to the venue.

Tip: Most PDF readers, other than Adobe Reader, will let you save the form with the data you have entered. If you are using Adobe Reader, however, you might not be able to do this. But don't despair: when you have typed in the information, just print the file to PDF - and you'll have a completed enrolment form ready to email to us.