Free Tutorial
Learn C++
C++ is the backbone of high-performance computing — from AAA game engines and operating systems to real-time trading platforms and embedded firmware. Master modern C++ (C++17/20) from fundamentals through advanced memory management, templates, and multithreading. Build the skills that power the world's most demanding software.
Learning Path
Getting Started
3 topicsDiscover what C++ is, where it's used, why it matters, and how it compares to other languages — plus your first working C++ program.
Install GCC/G++, configure VS Code, write your first program, and understand the compile-and-run workflow on Windows, macOS, and Linux.
Understand C++ program structure — preprocessor directives, namespaces, the main function, comments, semicolons, and the compilation pipeline.
Fundamentals
4 topicsMaster C++ built-in types — integers, floats, characters, booleans, auto, const, type casting, overflow, and how C++ stores data in memory.
Master C++ operators — arithmetic, relational, logical, bitwise, assignment, ternary — and understand operator precedence and associativity.
Master C++ I/O — cin, cout, cerr, getline, formatted output with iomanip, file streams, and printf vs cout comparison.
Work with C++ strings — std::string methods, concatenation, searching, substring, conversion, string_view, raw string literals, and C-string interop.
Control Flow
4 topicsMake decisions in C++ with if, else if, else, nested conditions, logical operators, constexpr if, and C++17 if-with-initialiser.
Master C++ switch statements — cases, break, default, fall-through, enum switches, C++17 switch initialiser, and when to prefer switch over if-else chains.
Master C++ for loops — traditional for, range-based for (C++11), nested loops, break, continue, and loop optimisation patterns.
Master C++ while and do-while loops — event-driven repetition, input validation loops, infinite loops, loop invariants, and choosing between loop types.
Functions
3 topicsWrite reusable C++ functions — declaration vs definition, parameters, return values, pass by value vs reference, default parameters, inline functions, and lambdas.
Understand C++ function overloading — defining multiple functions with the same name, overload resolution rules, and operator overloading basics.
Master recursion in C++ — base cases, call stacks, classic recursive algorithms, tail recursion, memoisation, and when to prefer iteration.
Object-Oriented Programming
5 topicsMaster C++ classes — member variables, member functions, access specifiers, the this pointer, static members, and object-oriented design fundamentals.
Master C++ constructors and destructors — default, parameterised, copy, and move constructors, initialiser lists, the Rule of Five, and RAII.
Master C++ inheritance — base and derived classes, access control, virtual functions, abstract classes, multiple inheritance, and the Liskov Substitution Principle.
Master C++ polymorphism — compile-time (overloading, templates) vs runtime (virtual functions, vtable), pure virtual interfaces, dynamic_cast, and the visitor pattern.
Overload C++ operators for custom types — arithmetic, comparison, stream insertion/extraction, subscript, function call, and conversion operators.
Memory Management
4 topicsMaster C++ pointers and references — declaration, dereferencing, pointer arithmetic, nullptr, references vs pointers, void pointers, and function pointers.
Understand C++ dynamic memory — new/delete, heap vs stack, memory leaks, RAII, detecting leaks with Valgrind, and the dangers of raw pointer ownership.
Master C++ smart pointers — unique_ptr, shared_ptr, weak_ptr — automatic memory management, make_unique/make_shared, ownership semantics, and the Rule of Zero.
Master C++11 move semantics — lvalue vs rvalue, move constructor, move assignment, std::move, perfect forwarding, and eliminating unnecessary copies.
Standard Template Library
4 topicsMaster C++ sequence containers — C arrays, std::array, std::vector, deque, capacity management, 2D vectors, and choosing the right container.
Master C++ associative containers — map, unordered_map, set, unordered_set, multimap, multiset — operations, iteration, and choosing the right container.
Master C++ STL algorithms — sort, find, transform, accumulate, count_if, remove_if, partition, and composing algorithms with lambdas and ranges.
Master C++ iterators — categories, begin/end, reverse iterators, insert iterators, iterator arithmetic, range-based algorithms, and writing a custom iterator.
Advanced Topics
4 topicsMaster C++ templates — function templates, class templates, template specialisation, variadic templates, SFINAE, and C++20 concepts.
Master C++ exception handling — try/catch/throw, the exception hierarchy, custom exceptions, noexcept, RAII with exceptions, and error handling strategies.
Master C++ file I/O — ifstream, ofstream, fstream, text vs binary files, seekg/seekp, error handling, C++17 filesystem, and practical file processing patterns.
Master C++ multithreading — std::thread, mutex, lock_guard, condition_variable, atomic, async/future, thread pool pattern, and avoiding data races.
Want structured learning with expert guidance?
Enroll in our comprehensive courses and programs with live mentorship, projects, and certification.