C++ Learning Guide
C++ Learning Guide¶
Introduction¶
This folder contains materials for systematically learning C++ programming from the ground up. You can progress step by step from basic syntax to modern C++.
Target Audience: Beginners to intermediate programmers
Learning Roadmap¶
[Beginner] [Basics] [Intermediate] [Advanced]
│ │ │ │
▼ ▼ ▼ ▼
Environment ───▶ Functions ───────▶ Classes Basics ──▶ Exception Handling
│ │ │ │
▼ ▼ ▼ ▼
Variables ──────▶ Arrays/Strings ──▶ Classes Advanced ▶ Smart Pointers
│ │ │ │
▼ ▼ ▼ ▼
Control Flow ───▶ Pointers/Refs ───▶ Inheritance ──────▶ Modern C++
│
▼
STL ─────▶ Templates
Prerequisites¶
- Basic computer usage
- Terminal/command prompt experience (recommended)
File List¶
| Filename | Difficulty | Topics |
|---|---|---|
| 01_Environment_Setup.md | ⭐ | Development environment, Hello World |
| 02_Variables_and_Types.md | ⭐ | Basic types, constants, type casting |
| 03_Operators_and_Control_Flow.md | ⭐ | Operators, if/switch, loops |
| 04_Functions.md | ⭐⭐ | Function definition, overloading, default values |
| 05_Arrays_and_Strings.md | ⭐⭐ | Arrays, C strings, string class |
| 06_Pointers_and_References.md | ⭐⭐ | Pointers, references, dynamic memory |
| 07_Classes_Basics.md | ⭐⭐⭐ | Classes, constructors, destructors |
| 08_Classes_Advanced.md | ⭐⭐⭐ | Operator overloading, copy/move |
| 09_Inheritance_and_Polymorphism.md | ⭐⭐⭐ | Inheritance, virtual functions, abstract classes |
| 10_STL_Containers.md | ⭐⭐⭐ | vector, map, set |
| 11_STL_Algorithms_Iterators.md | ⭐⭐⭐ | algorithm, iterator |
| 12_Templates.md | ⭐⭐⭐ | Function/class templates |
| 13_Exceptions_and_File_IO.md | ⭐⭐⭐⭐ | try/catch, fstream |
| 14_Smart_Pointers_Memory.md | ⭐⭐⭐⭐ | unique_ptr, shared_ptr |
| 15_Modern_CPP.md | ⭐⭐⭐⭐ | C++11/14/17/20 features |
| 16_Multithreading_Concurrency.md | ⭐⭐⭐⭐ | std::thread, mutex, async/future |
| 17_CPP20_Advanced.md | ⭐⭐⭐⭐⭐ | Concepts, Ranges, Coroutines |
| 18_Design_Patterns.md | ⭐⭐⭐⭐ | Singleton, Factory, Observer, CRTP |
| 19_Project_Student_Management.md | ⭐⭐⭐ | STL, File I/O, Smart Pointers, Exception Handling |
Recommended Learning Path¶
Beginner (First Steps in Programming)¶
- Environment Setup → Variables and Types → Operators and Control Flow
Basics (Core Syntax)¶
- Functions → Arrays and Strings → Pointers and References
Intermediate (OOP/STL)¶
- Classes Basics → Classes Advanced → Inheritance and Polymorphism
- STL Containers → STL Algorithms and Iterators → Templates
Advanced (Expert Level)¶
- Exception Handling and File I/O → Smart Pointers and Memory → Modern C++
In-Depth (Expert)¶
- Multithreading and Concurrency → C++20 Advanced → Design Patterns
Projects¶
- Student Management System (comprehensive STL + File I/O project)
Practice Environment¶
# Check compiler version
g++ --version
# Compile with C++17 standard
g++ -std=c++17 -Wall -Wextra program.cpp -o program
# Run
./program
Recommended Tools¶
- Compiler: g++ (GCC), clang++
- IDE: VS Code + C/C++ extension, CLion, Visual Studio
- Build System: CMake (for large projects)
Related Materials¶
- C_Programming/ - C language basics
- Linux/ - Linux development environment
- Python/ - Comparison with other languages