10.1 Introduction10.2 Base Classes and Derived Classes10.3 Relationship Between Base and Derived Classes10.4 Constructors and Destructors in Derived Classes10.5 Intro to Runtime Polymorphism: Polymorphic Video Game10.6 Relationships Among Objects in an Inheritance Hierarchy10.7 Virtual Functions and Virtual Destructors10.8 Abstract Classes and Pure virtual Functions10.9 Case Study: Payroll System Using Runtime Polymorphism10.10 Runtime Polymorphism, Virtual Functions and Dynamic Binding “Under the Hood“10.11 Non-Virtual Interface (NVI) Idiom10.12 Program to an Interface, Not an Implementation10.13 Runtime Polymorphism with std::variant and std::visit10.14 Multiple Inheritance10.15 protected Class Members: A Deeper Look10.16 public, protected and private Inheritance10.17 More Runtime Polymorphism Techniques; Compile-Time Polymorphism10.18 Wrap-Up