Skip to content

About

Hands-on modern C++ (C++17): fundamentals to object-oriented design, one concept per file.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

23 Commits

Folders and files

Repository files navigation

modern-cpp-practice

C++17

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.

Repository layout

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.

OOP track

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) ⏳

Build and run

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/ex

g++ -std=c++17 works the same way.

Conventions

  • 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.md and 05-oop-university/NOTES-OOP.md hold concise Q&A notes for each concept. PROGRESS.md tracks the roadmap.

Author

Abu Salek Arman, @arman-aru

About

Hands-on modern C++ (C++17): fundamentals to object-oriented design, one concept per file.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages