Courses
-
Introduction
- Administrative
- Glossary
- Compilers
- OS architecture
- C++ history and revisions
- From C to C++
- Classes (Data Members & methods)
- Link: Course 1
-
C++ Language specifiers
- Pointers and References
- Method overloading
- NULL pointer
- "const" specifier
- "friend" specifier
- Link: Course 2
-
Creating an object
- Initialization lists (recap)
- Constructors
- Const & Reference data members
- Delegating constructor
- Initialization lists for classes
- Value Types
- Copy & Move Constructors
- Constraints
- Link: Course 3
-
Operators
- Destructor
- C++ operators
- Operators for classes
- Operations with objects
- Link: Course 4
-
Inheritance
- Inheritance concepts
- Virtual methods
- How virtual methods are modeled by the C++ compiler
- Covariance
- Abstract classes (Interfaces)
- Memory alignment in case of inheritance
- Link: Course 5
-
Templates
- Casts
- Macros
- Macros vs Inline
- Literals
- Templates
- Function templates
- Class templates
- Template specialization
- Compile-time assertion checking
- Link: Course 6
-
STL
- Sequence containers
- Adaptors
- I/O Streams
- Strings
- Initialization lists
- Link: Course 7
-
STL (2)
- Associative containers
- Smart Pointers
- Link: Course 8
-
Advances beyond C+98
- Constant expressions
- For each (Range-based for loop)
- Type inference
- Structured binding (destructuring)
- Static Polymorphism (CRTP)
- Plain Old Data (POD)
- Link: Course 9
-
Lambda expressions
- Modeling lambda expression behavior
- Implicit conversion to a pointer to a function
- Lambdas and STL
- Using lambda with templates (Generic lambdas)
- Mutable capture
- Initialized lambda capture
- New features in C++17 and beyond
- Link: Course 10
-
Exceptions
- Basic Exceptions
- Starndard Exceptions
- noexcept keyword
- Modeling Exception Behavior
- SEH (Structured Exception Handling)
- RAII
- Link: Course 11