Object-Oriented C++
Classes, objects, inheritance, polymorphism, and the pillars of OOP in C++.
Classes & Objects
Classes, Structs & Encapsulation
Understand the difference between struct and class, access specifiers, encapsulation, const member functions, static members, and modern aggregate initialization.
Constructors, Destructors & Rule of 0/3/5
Master the full lifecycle of C++ objects — from construction through destruction — and learn when to write (or not write) special member functions.
Copy Semantics: Deep vs Shallow
Learn the difference between shallow and deep copies, how to implement correct copy operations for resource-owning classes, and the copy-and-swap idiom.
Inheritance & Polymorphism
Inheritance & Is-A Relationships
Learn public inheritance, constructor chaining, the slicing problem, multiple inheritance, and the diamond problem — and when inheritance is appropriate.
Virtual Functions, vtables & Polymorphism
Dive into runtime polymorphism: how virtual dispatch works under the hood, when to use override and final, abstract classes, and RTTI.
Operator Overloading
Learn how to overload operators correctly — member vs non-member, canonical forms, stream operators, the C++20 spaceship operator, and common pitfalls.
OOP Design
Static Members, Singletons & PIMPL
Explore static members, the Meyers Singleton pattern, the Factory pattern, and the PIMPL idiom for ABI stability and compile-time insulation.
Composition, Interfaces & Design
Master composition over inheritance, pure abstract interfaces, design principles (ISP, DIP), std::variant as an alternative to inheritance, and type erasure.