Search, explore and find the perfect course for you

C++ for Experienced Developers

Have you worked with high level object oriented languages such as C# or Java and suddenly find yourself thrown into a project containing C++ code?

Are you finding the transition less than smooth?

When designing applications in C++, fundamental design guidelines tend to differ from many other languages. In C++, you will suddenly find yourself without a garbage collector, making memory leaks a very pressing concern through every step of the development work. What you lose in memory management, you gain in an abundance of cryptic compiler errors, weird segfault-errors and pitfalls behind every corner.

This course will bring you up to speed in the C++ world, covering aspects of both the well-established C++03 as well as the new features in C++11. It will draw on your previous experiences as a software developer and show how to transition into the world of natively compiled code that is C++. Common errors and mistakes and how to avoid them will be shown. Typical idioms to avoid typical problems will also be shown.

Target audience

This course is meant as a crash course in C++ for experienced developers.


You will most likely have a very firm grip on object oriented programming in a managed language such as C# or Java. Knowing some C++ is always positive, but in no way mandatory.

What you will learn

Day 1

  • Pointers and references
  • Type inference
  • Memory allocations
  • Header files, implementation files and the linker
  • Namespaces
  • Objects - classes, structs and unions
  • Constructors and destructors
  • Exception handling
  • Traditional enums and C++11 enum classes
  • List, vectors and other STL collections
  • Iterators, algorithms and range-based iteration
  • Single and multiple inheritance
  • The diamond problem
  • The oddities called protected and private inheritance
  • Abstract base classes
  • Pure virtual functions
  • Polymorphism in C++
  • The type slicing problem

Day 2

  • Friend functions
  • Operator overloading
  • The "Rule of Three"
  • Component composition
  • Standard Template Library
  • Templates (and how they differ from generics)
  • Inherited template classes: covariance and variance
  • Template type querying with decltype
  • Explicit template instantiations
  • Template metaprogramming

Day 3

  • The pImpl idiom
  • The RAII idiom
  • Smart pointers and ownership semantics
  • rvalues, lvalues and Move Semantics
  • Function pointers
  • Lambda expressions
  • Higher-order programming
  • Streams and file management
  • Regular expressions
  • C++11 threads and locks
  • The <chrono> header
  • Tuples
  • C++11 specific STL additions
  • Loading shared libraries at runtime

Course info

Course code: T191
Duration: 3 days
Price: 24 500 SEK



Contact us for details

+46 40 61 70 720

All prices excluding VAT