This site contains an original, self-contained guide to learning the fundamentals of Modern C++, intended to be the basis of a self-study course. Some Chapters depend upon material presented in earlier ones, so studying them linearly is recommended. There are also regular posts (accessible from the front page) which cover topics or areas of C++ not covered in the course.
If you have any queries or suggestions, please leave a comment. The course materials are in a completed state (note: recently updated to cover some parts of C++23) and are made freely available here:
- About this Tutorial
- String and Character Literals
- Variables, Scopes and Namespaces
- Conditions and Operators
- Functions
- Arrays, Pointers and Loops
- Enums and Structs
- Strings, Containers and Views
- Files and Formatting
- Classes, Friends and Polymorphism
- Templates, Exceptions, Lambdas, Smart Pointers
- Download the code examples (as a zipfile) or browse them on GitHub.
- View details of the course topics.
- View the C++20 version on GitHub.
Last update: 2024/01/22