Courses

  1. Introduction

    • Administrative
    • Glossary
    • Compilers
    • OS architecture
    • C++ history and revisions
    • From C to C++
    • Classes (Data Members & methods)
    • Link: Course 1
  2. C++ Language specifiers

    • Pointers and References
    • Method overloading
    • NULL pointer
    • "const" specifier
    • "friend" specifier
    • Link: Course 2
  3. 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
  4. Operators

    • Destructor
    • C++ operators
    • Operators for classes
    • Operations with objects
    • Link: Course 4
  5. 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
  6. Templates

    • Casts
    • Macros
    • Macros vs Inline
    • Literals
    • Templates
    • Function templates
    • Class templates
    • Template specialization
    • Compile-time assertion checking
    • Link: Course 6
  7. STL

    • Sequence containers
    • Adaptors
    • I/O Streams
    • Strings
    • Initialization lists
    • Link: Course 7
  8. STL (2)

    • Associative containers
    • Smart Pointers
    • Link: Course 8
  9. 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
  10. 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
  11. Exceptions

    • Basic Exceptions
    • Starndard Exceptions
    • noexcept keyword
    • Modeling Exception Behavior
    • SEH (Structured Exception Handling)
    • RAII
    • Link: Course 11