๐ Learn C++
C++ is a high-performance, object-oriented, systems-level programming language used in game development (Unreal Engine), high-frequency trading, operating systems, compilers, database systems, embedded devices, and robotics.
๐ข Beginner to Advanced: start with streams and basic syntax, master object-oriented programming (OOP), constructors, smart pointers (
unique_ptr/shared_ptr), STL containers, generic templates, lambdas, exception handling, move semantics, and modern C++11โC++20 standards.
๐ What You Will Learn
- Setting up
g++/clang++compilers and compiling C++ codebases - Stream I/O (
std::cout,std::cin,getline) and string handling (std::string) - Pass-by-value vs pass-by-reference (
&), default arguments, and function overloading - Dynamic array management using
std::vector - Object-Oriented Programming (OOP): classes, encapsulation, private/public access, constructors, destructors, Rule of 3/5/0, inheritance, and dynamic polymorphism (
virtual/override) - Custom operator overloading (
+,<<,==,[]) - Modern memory management with Smart Pointers (
std::unique_ptr,std::shared_ptr,std::weak_ptr) - Standard Template Library (STL):
std::vector,std::map,std::unordered_map,std::set,std::list,std::pair,std::tuple - STL Algorithms (
std::sort,std::find,std::binary_search,std::transform) - Generic programming using Function Templates and Class Templates
- C++ Lambda Expressions, closures, and
std::function - Exception handling (
try,catch,throw,std::exception) - Modern C++ Features: Rvalue references (
&&), Move semantics (std::move),constexpr,auto,enum class, and Structured Binding
๐ Lessons
| # | Topic | Level | Link |
|---|---|---|---|
| 01 | Set Up C++ Environment | ๐ข Beginner | Open lesson |
| 02 | Introduction to C++ | ๐ข Beginner | Open lesson |
| 03 | Variables & Primitive Data Types | ๐ข Beginner | Open lesson |
| 04 | Input & Output (std::cout, std::cin, getline) |
๐ข Beginner | Open lesson |
| 05 | Operators | ๐ข Beginner | Open lesson |
| 06 | Conditionals (if, else, switch) |
๐ข Beginner | Open lesson |
| 07 | Loops & Range-Based For | ๐ข Beginner | Open lesson |
| 08 | Functions, Default Arguments & References | ๐ข Beginner | Open lesson |
| 09 | Arrays & Dynamic Vectors (std::vector) |
๐ก Intermediate | Open lesson |
| 10 | Classes & Objects (OOP Basics) | ๐ก Intermediate | Open lesson |
| 11 | Constructors, Destructors & RAII | ๐ก Intermediate | Open lesson |
| 12 | Inheritance & Polymorphism (virtual, override) |
๐ด Advanced | Open lesson |
| 13 | Operator Overloading | ๐ด Advanced | Open lesson |
| 14 | Smart Pointers (unique_ptr, shared_ptr) |
๐ด Advanced | Open lesson |
| 15 | STL Containers (map, set, unordered_map) |
๐ก Intermediate | Open lesson |
| 16 | STL Algorithms & Iterators | ๐ก Intermediate | Open lesson |
| 17 | Generic Programming & Templates | ๐ด Advanced | Open lesson |
| 18 | Lambdas & Function Objects | ๐ด Advanced | Open lesson |
| 19 | Exception Handling (try, catch, throw) |
๐ก Intermediate | Open lesson |
| 20 | File Streams (ifstream, ofstream) |
๐ก Intermediate | Open lesson |
| 21 | Namespaces & Modern C++ (C++11 to C++20) | ๐ด Advanced | Open lesson |
| 22 | Move Semantics & Rvalue References (&&) |
๐ด Advanced | Open lesson |
| 23 | Comprehensive C++ Mini Projects | ๐ด Advanced | Open lesson |
๐ฏ Suggested Learning Flow
01โ08 C++ Core Syntax โ 09โ11 OOP & Constructors โ 12โ14 Inheritance, Overloading & Smart Pointers โ 15โ16 STL Containers & Algorithms โ 17โ18 Templates & Lambdas โ 19โ22 Modern C++ Features & Move Semantics โ 23 Projects
๐งช Practice Routine
- Read the explanation and code example.
- Compile using
g++ -std=c++17 -Wall filename.cpp -o program. - Test edge cases, memory lifecycle, and class behavior.
- Solve practice exercises.
โ Progress Checklist
- I can write and compile modern C++17/20 code using
g++. - I understand classes, encapsulation, inheritance, and dynamic polymorphism.
- I can manage object lifecycle safely using RAII and Smart Pointers (
unique_ptr/shared_ptr). - I can manipulate STL containers (
map,set,vector) and algorithms (std::sort). - I can write template classes and functions for generic programming.
- I understand move semantics, rvalue references (
&&), and lambda expressions.
๐งญ Navigation
| โ Repository Home | Start with Lesson 01 โ |