All courses
All courses
Course categories
Contact us

Advanced C++ Development, 5 days

Delivered at your office or a training centre, in groups or 1-2-1

This course will keep the audience abreast of these changes. It covers four main areas: new and advanced language features; using the standard library; implementing object-oriented concepts and patterns in C++; effective C++ programming techniques and idioms. It also suggests ways to maximise efficiency, code quality, and reusability.



  • Available in-house at your location
  • Discounts for group bookings
  • 1-2-1 training available
Make an enquiry

Check availability in your area…

Key features

  • Live instructor-led course with 30 hours of training
  • Session runs from 9.30–5pm with normal breaks included
  • Fully certified trainer
  • Get key skills and practical knowledge
  • This course is available for delivery at your office, 1-2-1 and groups – contact us
  • Course materials included
  • Recognised course certificate

What will I learn?

Evolution of Standard C++

Overview of the standard library
C++11 Language Enhancements

Changes to the language and syntax
lambdas, r-values and move constructor
additions to the standard library
C++ and OO Refresher

Abstraction and encapsulation
Composition and association
Inheritance and polymorphism
Patterns and idioms
Copying and Conversions

The staticcast, dynamiccast, constcast and reinterpretcast keyword casts
Logical vs physical const-ness and the mutable keyword
Converting constructors and the explicit keyword
User defined conversion operators
Copy construction and assignment

Static class members
The Singleton pattern
Nested classes
Nested class forward declarations
The Cheshire Cat idiom
Delegation Techniques

The Object Adapter pattern
The Null Object Pattern
The Proxy pattern
Overloading the member access operator
Smart pointers
The Template Method pattern
Factory objects
Subscripting Techniques

Overloading the subscript operator
Overloading with respect to const-ness
Smart references
Multi-dimensional subscripting
Associative containers
Template Functions

Using and implementing generic algorithms with template functions
Overloading and specialising template functions
Template instantiation and linkage
Template Classes

Using and implementing generic types with templates classes
Multiple template parameters
The standard vector, list, pair, and map template classes
Iterators and Algorithms

The need for Iterators

So glad we switched from our old provider as your courses are totally hands on, just what we needed”

Ahmed K

The standard library (STL) iterator model
Generic algorithms using iterators
STL algorithm pitfalls
Introduction to function objects
Exception Handling and Safety

Reviewing Exception handling
Strategies for handling exceptions
Resource acquisition idioms for exception safety
Exceptions in constructors
Exceptions in destructors
Exception safe classes
STL exception safety guarantees
Memory Management

Object life cycle
Allocation failure
Customising memory allocation
Optimising allocation for a class through caching
Derivation safe allocation
Controlling timing of construction and destruction
Reference Counting

Reference counting shared representation
Reference counted strings for copy optimisation
Subscripting issues
Smart pointers for simple, automatic garbage collection
Inheritance Techniques

Subtyping vs subclassing
Abstract and concrete base classes
Inheritance scoping issues
Multiple inheritance
Virtual base classes
Interface classes
Mixin classes
Runtime type information (RTTI)
Private and protected inheritance
The Class Adapter pattern
Functional Abstraction

Traditional callbacks using function pointers
The Command pattern
More on function objects
Member function pointers
Template Techniques

Templating on precision
Template adapters
Default template parameters
Template specialisation
Trait classes
Member templates
Non-type template parameters
Optimising template code space
Multithreading Techniques

Creating multithreaded applications in C++ using the new std::thread class and other related classes new to C++11
Brief overview of essential threading concepts
Dealing with interesting issues concerning shared data, using locks, atomic and conditional variables


Download course details as a PDF

Interested in this course? Get in touch...

01225 308979


Find us at:
Go Courses Ltd.
Kemp House
152 - 160 City Road
United Kingdom

Registered Office:
Go Courses Ltd.
10 Laura Place
United Kingdom

View on a map

Delighted satisfaction rating