This repository contains clean and practical implementations of essential Object-Oriented Programming (OOP) concepts.
It is designed as a reference for learners, interview preparation, and anyone wanting a strong hands-on understanding of OOP.
- Private/protected data members
- Getter & setter methods
- Controlled access to object state
- Abstract base classes
- Interfaces (pure virtual functions)
- Hiding implementation details
- Single and multi-level inheritance
- Reusing behavior through parent-child relationships
- Constructor chaining & use of
super/Base
- Function overloading (compile-time)
- Function overriding using virtual functions (runtime)
- Dynamic dispatch
- Static data members shared across all objects
- Static member functions
- Use cases for global counters, object tracking, utility functions
- Base class pointer referencing derived objects
- Behavior customization using overridden methods
- Runtime polymorphism explained with clear examples
- Demonstrating object storage using
std::vector - Dynamic resizing & memory management
- Storing and iterating over objects using vectors
- Passing vectors to functions & returning vectors