8 lessons
What Is Object-Oriented Programming
The mental shift from "data and functions that act on it, kept separate" to "objects that bundle both together" — and the four ideas that define OOP.
Structs and Classes
Grouping data, constructors, and the difference between struct and class that matters less than people think.
Access Modifiers — public, private and protected
Exactly what each access level allows and blocks, why hiding data is a feature and not an inconvenience, and the getter/setter pattern that makes it practical.
Constructors, Destructors and the Rule of Three
What actually happens when an object is born and when it dies, why copying an object can silently corrupt memory, and the rule that fixes it.
Inheritance Basics
How one class can reuse and extend another instead of copy-pasting it, and exactly what a derived class inherits, hides and adds.
Composition and Access Control
When to reach for inheritance versus building an object out of other objects, and the subtle rules of public, protected and private inheritance.
Virtual Functions and Dynamic Binding
How to make a base-class pointer actually call the derived class's version of a method — the one keyword that makes polymorphism work.
Abstract Classes and Operator Overloading
How to force every derived class to implement certain behaviour, and how to make your own types work with +, ==, and << the way built-in types do.