Edocti
Advanced Technical Training for the Software Engineer of Tomorrow
Edocti Training

Essential C++ Topics (Intermediate)

Intermediate
21 h
4.8 (537 reviews)
Essential C++ Topics (Intermediate)

Key concepts: Solidify your understanding of essential and modern C++ features.

Hands-on focus on arrays, functions, memory management, OOP, templates, STL, and concurrency.

Develop a strong foundation for advanced topics and certification readiness.

Gain practical experience by writing and running code (~70% hands-on).

How this course helps: build confidence to use C++ effectively in real projects.

Who it’s for: designed for developers with basic C++ knowledge who want to advance.

By the end you’ll be able to apply intermediate-level C++ confidently and prepare for CPA exam.

Curriculum

Intro to C++ programming
  • Build process: from source to binary; artifacts produced at build time
  • Working with strings
  • Standard input and output
  • String formatting
  • Control flow: conditions, loops, switch
  • Floating point basics: representation, precision, comparison
  • Working with arrays
  • Multi-dimensional arrays and their sizes
  • Array operations: sorting and simple reduce operations
Elements of modern C++
  • The auto keyword
  • nullptr
  • Return type deduction
  • decltype, typeid, type traits
  • Strongly-typed enums (scoped enums)
  • static_assert and applications
  • override
  • Defaulted constructors
  • constexpr
  • Working with random numbers in modern C++
The function mechanism
  • Working with functions
  • Function parameters
  • Return type
  • Local vs. global variables
  • Warnings about using global variables
Pointers and memory
  • Variables and addresses; memory layout
  • Pointer basics and pointer arithmetic
  • NULL vs. nullptr
  • Dynamic allocation with new and delete
  • Pointers and arrays; multi-dimensional arrays
  • Arrays and functions
OOP in C++
  • struct vs. class; classes and objects
  • Abstraction and encapsulation
  • Constructors and destructors; overloading constructors
  • Initialization list vs. member initialization
  • The this keyword
  • friend, private, protected, public
  • Composition, inheritance, polymorphism, dynamic dispatch
  • final classes and methods; override and delete
  • Delegating constructors
Templates
  • Function templates and type inference
  • Class templates; nested template classes
  • Variadic templates
Practical functional programming
  • Function pointers
  • Functors
  • Lambdas
  • Lambda parameters and return types
  • Lambda capture expressions
  • How lambdas work
  • Generic lambdas; mutable lambdas
The Standard Template Library
  • Vectors; vectors and memory; multi-dimensional vectors
  • Lists
  • Maps (objects as values and keys)
  • Multimaps
  • Sets
  • Stacks
  • Queues and deques
  • Algorithms
Multithreading and parallelism
  • Basics: visibility, atomicity
  • Atomic operations in modern C++
  • Mutexes and locks
  • Condition variables: usage and scenarios
Under the hood
  • Runtime cost of C++ features
  • Virtual and pure virtual functions
  • Object addresses under (multiple) inheritance
  • No-cost C++ features vs. low-cost C++ features
Misc
  • rvalues and lvalues
  • lvalue references vs. rvalue references
  • Move constructors and move assignment operators

Course Day Structure

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:30–15:45
  • Part 4: 15:45–17:30