"C++ From Scratch" is an introductory course on programming with C++. It covers the essential parts of C++ without becomming an exhaustive references on every operator, algorithm, and data structure available in C++ and through the standard library.
This course is suitable for both self-motivated new programmers, and experienced programmers that want to learn about modern C++.
The course should provide new programmers with an entry-point to C++, and give this a guide of where to learn about the different parts of the language in a logical order.
The course should provide experienced programmers with a clear and concise overview of the language, with pointers to the reference material where they can learn more about the topics they are interested in.
- Introduction and The Main Function
- Printing
- Variables
- Conditional Statements
- std::array
- For Loops
- While Loops
- Functions
- Function Overloading
- Function Templates
- Template Specialization
- Iterators
- std::sort
- std::vector
- References
- Pass by Reference
- Pointers
- Dynamic Allocation
- std::unique_ptr
- std::shared_ptr
- std::span
- Structs
- Classes
- Constructors
- Destructors
- Copy Constructors
- Operator Overloading
- std::move
- Move Constructors
- push_back vs. emplace_back
- Inheritance
- Polymorphism
- Virtual Functions
- Abstract Classes
- Class Templates
- Default Comparisons
- Virtual Inheritance
- Function Objects
- Lambdas
- Parallel STL Algorithms
- Threads (std::thread/std::jthread)
- std::mutex
- std::atomic
- Namespaces
- Pseudo-Random Numbers
- File I/O
- Constexpr
- Concepts