About this Course
In this final course, you'll continue to build your repertoire of programming idioms, design patterns and advanced C++ Standard Library components. We'll emphasize design principles, as well as the use of patterns to build extensible and maintainable larger-scale software applications and frameworks. In lessons and programming exercises, you'll use the incremental development of a vector graphics framework as a case study to illustrate how you make design choices and apply language features.
We'll cover the following topics:
- Programming to interfaces and abstractions
- Separation of responsibilities
- Standard Library components, including streams, containers, iterators and algorithms
- Smart pointers
- Design patterns, including prototypes, iterators and decorators
- Rvalue references and move semantics
- Constexpr: generalized constant expressions
- Hash-based, unordered standard collections