๐Ÿš€ 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

  1. Read the explanation and code example.
  2. Compile using g++ -std=c++17 -Wall filename.cpp -o program.
  3. Test edge cases, memory lifecycle, and class behavior.
  4. 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 โ†’