Advanced C++ Development Techniques
Course
Online
Description
-
Type
Course
-
Methodology
Online
C++ is the standard language for implementing object-oriented designs, but although based on C, C++ introduces many subtle syntactic and design issues. For developers whose C++ experience goes back further, many of the changes as a result of standardisation make standard C++ a very different programming environment.
Reviews
Subjects
- C++
- IT
- IT Development
Course programme
- ISO C++
- Changes to the core language
- Overview of the standard library
- Abstraction and encapsulation
- Composition and association
- Inheritance and polymorphism
- Patterns and idioms
- 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
- Namespaces
- The Object Adapter pattern
- The Null Object Pattern
- The Proxy pattern
- Overloading the member access operator
- Smart pointers
- The Template Method pattern
- Factory objects
- Overloading the subscript operator
- Overloading with respect to const-ness
- Smart references
- Multi-dimensional subscripting
- Associative containers
- Using and implementing generic algorithms with template functions
- Overloading and specialising template functions
- Template instantiation and linkage
- Using and implementing generic types with templates classes
- Multiple template parameters
- The standard vector, list, pair, and map template classes
- The need for Iterators
- The standard library (STL) iterator model
- Generic algorithms using iterators
- STL algorithm pitfalls
- Introduction to function objects
- Classifying and handling exceptions
- Catching and throwing exceptions
- The standard exception class hierarchy
- Uncaught exceptions
- Strategies for handling exceptions
- Resource acquisition idioms for exception safety
- Exceptions in constructors
- Exceptions in destructors
- Exception safe classes
- STL exception safety guarantees
- 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 shared representation
- Reference counted strings for copy optimisation
- Subscripting issues
- Smart pointers for simple, automatic garbage collection
- 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
- Templating on precision
- Template adapters
- Default template parameters
- Template specialisation
- Trait classes
- Member templates
- Non-type template parameters
- Optimising template code space
- Traditional callbacks using function pointers
- The Command pattern
- More on function objects
- Member function pointers
Advanced C++ Development Techniques