Learn the basics of object-oriented programming languages, using only C++98.
Namespace, class, member functions.
Memory allocation, references, pointers to members, switch
Ad-hoc polymorphism, operators overload and orthodox canonical classes
Inheritance
Subtype polymorphism, abstract classes, interfaces
Repetition and Exceptions
Casts
Templates
Templated containers, iterators, algorithms
All code is released under the MIT license