A structured, hands-on path through modern C++, from language fundamentals to object-oriented design. Every exercise is a small, self-contained program that I type by hand, compile, run and then explain in my own words.
The repository grows one topic at a time, and the commit history shows that progression.
| Folder | Focus | Status |
|---|---|---|
01-fundamentals/ |
Variables, types, control flow, functions, pointers & references, classes, memory | ✅ 11 / 11 |
05-oop-university/ |
OOP course track: inheritance, polymorphism, abstraction, SOLID, design patterns | 🚧 In progress |
Planned next: 02-stl (containers, iterators, algorithms), 03-algorithms (sorting, binary search, two pointers, sliding window, recursion), 04-data-structures (linked list, stack, queue, hash map, trees, heap). Each folder is added once it has real content.
This track ends with a Vehicle & Sportsbike Dealership System: vehicle inventory, user accounts and reservations. It is designed to demonstrate inheritance, polymorphism, encapsulation, abstraction and the SOLID principles.
| # | Topic | Status |
|---|---|---|
| 00a / 01 | Classes, objects, the four pillars of OOP | ✅ |
| 02 | Inheritance, protected, constructor chaining |
✅ |
| 03 | Polymorphism, virtual / override, vtable |
🚧 |
| 04 | Abstraction, pure virtual functions, abstract classes | 🚧 |
| 05–12 | Constructors & destructors, object relationships, exceptions, templates, SOLID, design patterns, serialization, callbacks (std::function) |
⏳ |
Each file is a standalone program with its own main().
# compile and run a single exercise
clang++ -std=c++17 -Wall -Wextra -o /tmp/ex 01-fundamentals/08-functions.cpp && /tmp/exg++ -std=c++17 works the same way.
- Standard: C++17, with no external dependencies. Every exercise compiles cleanly with
-Wall. - One concept per file. Each file isolates a single idea so it is easy to review and revisit.
- Comments are in Banglish (Bengali written in Latin script), my native language. They are my own explanations of why the code behaves the way it does. Identifiers and code stay in English.
NOTES.mdand05-oop-university/NOTES-OOP.mdhold concise Q&A notes for each concept.PROGRESS.mdtracks the roadmap.
Abu Salek Arman, @arman-aru