Advanced C++ Programming

Course:  ADVCPP
Duration:  5 Days
Level:  III
Course Summary

C++ is a powerful and complex language. This course covers advanced C++ language features and development techniques, to help you get the most out of the language. The course also provides thorough coverage of the C++ Standard Library, and explains how to implement OO design patterns and C++ programming idioms to reinforce best practice in your code.

« Hide The Details
Topics Covered In This Course

Setting the Scene

  • Recap of C++ and OO features and techniques
  • ISO C++
  • Core language additions
  • Recap of the standard library

Copying and Conversions

  • staticcast, dynamiccast, constcast and reinterpretcast
  • The mutable keyword
  • The explicit keyword
  • User defined conversion operators
  • Copy construction and assignment

Scope and Related Patterns/Idioms

  • Recap of static class members
  • The Singleton pattern
  • Defining nested classes
  • The Handle/Body idiom
  • Using namespaces effectively

Using Delegation

  • Recap of association and delegation
  • The Object Adapter pattern
  • The Proxy pattern
  • The Null Object pattern
  • Defining smart pointers
  • Lazy loading

Overloading the subscript operator

  • How to overload []
  • Why to overload []
  • Creating multi-dimensional containers

Template Functions

  • Overview of template functions
  • Implementing generic algorithms using template functions

Template Classes

  • Overview of template classes
  • Specifying multiple type parameters
  • Using the standard container classes

Using Iterators and Algorithms

  • What is an iterator
  • Using standard iterators
  • Creating generic algorithms using iterators
  • Function objects

Exception Handling Techniques

  • Recap of exceptions
  • The standard exception class hierarchy
  • Uncaught exceptions
  • Strategies for handling exceptions
  • Exception safety

Effective Memory Management

  • Handling allocation failures
  • Overriding the new operator to customise memory allocation
  • Caching
  • Controlling timing of construction and destruction

Reference Counting Techniques

  • Defining classes that use shared representation objects
  • Reference-counted strings
  • Defining smart pointers for garbage collection

Inheritance Techniques

  • Defining interfaces
  • Multiple inheritance
  • Virtual base classes
  • Interface classes
  • Mixin classes
  • Runtime type information (RTTI)
  • Private and protected inheritance
  • The Class Adapter pattern

Advanced Template Techniques

  • Defining non-type template parameters
  • Defining template adapters
  • Specifying default template parameters
  • Specializing templates
  • Defining trait classes

Call-back Techniques

  • Implementing call-backs using function pointers
  • The Command pattern
  • Function objects
  • Member function pointers
Who Should Take This Course

C++ developers who want to experience the full power of the C++ language.

Recommended Prerequisites

3-6 months C++ programming experience.

Training Style

Short lecture sessions (50%), combined with extensive hands-on practice (50%).

« Hide The Details
Related Courses
Code Course Title Duration Level
C++ Programming for OO Developers
4 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]