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 |
|
CPPOO |
C++ Programming for OO Developers |
4 Days |
I |
Details |
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.
|