AdvancedC Programming
AdvancedC Programming
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.
Contents:
• 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
C++ developers who want to experience the full power of the C++ language.
Prerequisites: