About this course
The Advanced C++ Programming course examines the more sophisticated features and language mechanisms defined by the ISO C++ standards.
The emphasis is on writing robust, maintainable, and portable C++ code, with particular attention to object lifetime, resource management, advanced type interactions, and complex program behaviour.
Delegate feedback
Feedback from delegates who have attended this course:
L. Mbatha
C. Wagner
J. Dass
R. Broodryk
S. Maharaj
C. Nxumalo
P. Coetzee
T. Pillay
V. Eloff
Intended Audience
This course is useful if:- You develop or maintain software written in C++.
- You work with complex C++ code and want deeper control over language behaviour.
- You use C++ and want a more structured understanding of advanced language features.
- You develop or support embedded systems using C++.
Prerequisites
Delegates should have knowledge equivalent to the Standard C++ Programming course.
Familiarity with classes, constructors, references, and basic object-oriented programming is expected.
Course details
Price: R15,800 excluding VAT per delegate.
Included:
- Electronic course material.
- Attendance certificate (PDF).
Duration: 5 days.
Delivery: Virtual classroom
See how virtual training works.
See the course schedule for upcoming dates.
Booking information
Email your booking to info@incusdata.com. A purchase order, or completed enrolment form is sufficient.
We will confirm the booking and issue an invoice.
Course contents
Advanced C++ Language Mechanics
- Overview of C++ and ISO standards.
- C and C++ differences and portability considerations.
- Operator overloading mechanics.
- Function overloading and parameter mechanisms.
- Namespaces: structure, usage, and practical considerations.
- References and value semantics.
- Run-time type information (RTTI).
- Name mangling and linkage considerations.
Exception Handling
- Exception handling structure and usage.
- Error handling strategies.
- Memory allocation failure handling.
- Exception-safe design considerations.
Pointers and Memory Management
- Dynamic memory and object lifetime.
- Overloading new and delete.
- Pointer ownership and lifetime strategies.
- Reference counting concepts.
- Shallow vs deep copying.
Classes, Inheritance and Polymorphism
- Inheritance and polymorphic behaviour.
- Virtual functions and dynamic dispatch.
- Multiple inheritance considerations.
- Abstract classes and interfaces.
- Copy control and object lifetime management.
- Object construction and interface patterns.
Templates and Generic Programming
- Template definition and usage.
- Function and class templates.
- Template parameters and instantiation.
- Practical template usage patterns.
Standard Template Library (STL)
- STL principles and design considerations.
- Containers, iterators, and algorithms.
- Practical usage considerations and trade-offs.
Object-Oriented Design Considerations
- Class relationships and responsibilities.
- Composition and aggregation concepts.
- Interface design considerations.