All courses
All courses
Course categories
Contact us

Advanced C++ Development, 5 days

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.

All courses are available online




Course Dates

Mon, 20 Jul
Live Online
Mon, 27 Jul
Live Online
Mon, 3 Aug
Live Online
Mon, 10 Aug
Live Online
Download course details as a PDF

Key features

  • Live Online Training with a real person
  • Fully certified trainer
  • Get key skills and practical knowledge
  • This course is available for groups and 1-2-1 live online
  • 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
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