Advanced C++
Learn what's necessary to do real OOP in C++ — and much more
To be a master of a language, one must know its idioms. This is particularly important for C++: a highly idiomatic language. Much of the object-oriented power of C++ owes to these idioms: separating interface from implementation, reference counting, specific tricks for framework design, making templates efficient. The course is based on the popular book, “Advanced C++” and is taught by its author.
Participants
This course is intended for
C++ programmers
System designers
Software Architects
Prerequisites
Programmers should have at least one year of C++ programming experience.
Course objectives
After taking this course, attendees will be able to:
Make robust object-oriented design in C++: efficient, safe, extensible.
Increase the flexibility of object-oriented designs in C++
Simulate powerful object-oriented features (multiple dispatch, dynamic run-time typing) that are not native to C++
Syllabus (2 days)
Design, Patterns, and Pattern Languages
Pattern Sections
The “Wholes” of OO Pattern Languages
Class Hierarchy Patterns
Handle/Body
Counted Body
Detached Counted Body
Handle/Body Hierarchies
Envelope/Letter
Virtual Constructors
Concrete Data Types
Multiple Inheritance
An Abelian Pattern Language
Algebraic Hierarchy
Homogeneous Addition
Promote and Add
Heterogeneous Addition
Promotion Ladder
Non-Hierarchical Addition
Type Promotion
Based on the critically-acclaimed classic and taught by its author