Modern Expressive C++ Training in Germany

  • Learn via: Classroom / Virtual Classroom / Online
  • Duration: 5 Days
  • Price: From €6,487+VAT
We can host this training at your preferred location. Contact us!

C++ is undoubtedly one of the most popular programming languages for software development. It brings language enhancements and object-oriented programming support to the extremely popular language C . However, C ++ is a large and sometimes difficult language, and even with a C or object oriented background, a programmer needs to understand C ++ programming style as well as C ++ constructs to get the best out of it.

The course is written from a developers rather than an academics perspective, providing a thorough practical coverage of the language. It aims to eliminate common misconceptions and poor programming practice by teaching the features of the language and standard library that enforce good practice.

In particular the course teaches the Modern C++ approach, to deliver clear expressive and efficient code. Although C++11 and more recent additions to the language are taught throughout (including C++ 14 and 17), most of the material is useful and relevant to pre C++11 users.

This is a hands-on course with a mix of tuition and practical sessions for each technical chapter which reinforce the Modern Expressive C ++ programming techniques covered in the course. Delegates will write unit tests to verify their work as they develop a GUI based tool to support their learning.

Delegates must have solid experience of programming, with a clear understanding of variable definitions, references, implementing and calling functions and multiple source file projects. A basic understanding of Object Oriented principles is assumed. Those coming from C, C# or Java will have an advantage.

Delegates who do not meet these prerequisites are unlikely to be able to keep pace and should consider attending the Programming Foundations course first.

Experienced C++ programmers should also consider the QA course Modern Robust C++ Development.

Delegates will require a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.

Delegates will learn how to:

  • Define and use data types.
  • Declare, define and call functions.
  • Use pointers, smart pointers, dynamic memory and object lifetime.
  • Understand the importance and application of const consistency.
  • Understand the key concepts and vocabulary of object orientation.
  • Implement classes.
  • Provide inward and outward conversions to UDT's.
  • Build new classes from other classes using composition and aggregation.
  • Build new classes from other classes using inheritance.
  • Design and write code with polymorphic behaviour.
  • Use container classes and templates.
  • Make extensive use of algorithms.
  • Write code that is efficient and robust

Chapter 1 – Introduction

  • Style and Approach

Chapter 2 – Language Overview

  • Why use C++?
  • Language Distinctives
  • Classic v Modern C++
  • File Structure
  • Online Compilers
  • Hello World
  • Identifiers
  • Keywords
  • Declarations
  • Definitions
  • Expressions and Statements
  • Member Access
  • Operators
  • Layout

Chapter 3 –Variables and Functions

  • Mutable and Immutable Variable types
  • Auto Variables
  • Brace or List Initialization, Uniform Initialization
  • Scope Types
  • Lifetime
  • Namespaces
  • Name Hiding
  • Scope Resolution
  • Function Prototype
  • Parameter Types
  • Reference
  • Function Return Types
  • Trailing Return
  • Header Files
  • Function Parameter Defaults
  • Function implementation
  • Inline function
  • Source-code Implementation
  • Deduced Return Type
  • Anonymous Return
  • Un-named arguments

Chapter 4 – Collections

  • Arrays
  • Array Initialisation
  • Array Behaviour
  • Arrays as Arguments
  • std::array
  • Vector Basics
  • Enumeration – Range For-loop
  • File System Basics
  • File-Streaming

Chapter 5 – Types and Const Qualifiers

  • Primitive Types
  • Uninitialised Values
  • Type Aliases
  • This-pointer
  • Const Objects
  • Const Function Parameters
  • Queries and Modifiers
  • Free Functions

Chapter 6 – Foundational Design Principles

  • Encapsulation
  • Private Access
  • Things that Break Encapsulation
  • Single Responsibility Principle
  • Expressiveness
  • Expressive Names
  • Resource Acquisition Is Initialization – RAII

Chapter 7 – Literals and Strings

  • Literals and Magic-Numbers
  • Numeric Limits
  • Strings
  • Tokenization
  • stringstream
  • Formatting Streams

Chapter 8 – Flow Control

  • Boolean
  • Conditions & Boolean Operators
  • If - Else
  • Range-For
  • Counted For-Loop
  • While-loop
  • Enum
  • Switch
  • Cost of testing and branching

Chapter 9 – Header Files

  • One Definition Rule
  • #define
  • constexpr literals
  • Precompiled Header Files

Chapter 10 – Unit Testing

  • What should be tested?
  • Project Arrangement
  • Unit Tests
  • Compiling Source Code to Use Libraries

Chapter 11 – Iterators

  • Operators
  • Prefix / Postfix Increment / Decrement
  • Iterators
  • Member Access Operators
  • Moving Iterators
  • Query Iterators
  • Iterator Position

Chapter 12 – Pointers

  • Naked Reference
  • Problems with Null-Pointers
  • Query Pointers
  • Array Pointers
  • Aggregate Pointers
  • Function Pointers
  • void, void pointers
  • Pointers as Iterators

Chapter 13 – Zero-Cost Abstractions

  • Encapsulating Concepts
  • Enumerated Type, enum
  • Bitwise (Flag) Enums

Chapter 14 – Lambdas

  • How Expressiveness Breaks Encapsulation
  • Locally defined function
  • Lambda Syntax
  • Capture List
  • Argument List
  • Return Type
  • Lambda Body
  • Lambda Closure as Function Pointer
  • Inlined Lambda
  • Immediately Invoked Lambda
  • Lambdas in Header Files

Chapter 15 – Algorithms

  • Non-Range Algorithms
  • Range Algorithms
  • Algorithm Examples
  • back_inserter
  • Loops and Folds
  • Accumulating Strings

Chapter 16 – Inline and Extern

  • Symbol Tables
  • Header Files Defining Objects or Functions
  • Inlining
  • Extern

Chapter 17 – Container Types

  • Compile-time sized containers
  • Dynamically sized Sequential Containers
  • Dynamically Sized Associative Containers

Chapter 18 – Type Conversions

  • Implicit Type Conversions
  • Keyword Casts
  • Conversion Constructor – Inward Conversion
  • Class Operators
  • Conversion Assignment
  • Conversion Operator - Outward Conversion
  • Allowable Conversions

Chapter 19 – Function Overloading

  • Function Overloading
  • Overloading on Const
  • Function Delegation
  • Inlined Function Definitions
  • Template Functions
  • Template Classes

Chapter 20 – Classes

  • Programming Paradigms
  • Object Oriented Programming (OOP)
  • Class Definition
  • Public Interface
  • Class Header File
  • Construction
  • In-Class Defaults
  • Default Constructor
  • Destruction
  • Synthesised Functions
  • Member Function Implementation
  • Member Initializer List (MIL)
  • std::initializer_list Constructor
  • Static Storage
  • Class Static Data
  • Class Static Functions
  • Struct

Chapter 21 – Inheritance

  • Inheritance Hierarchy
  • Liskov substitution
  • Public Inheritance
  • Function Specialisation
  • Protected Access
  • Private Inheritance
  • Accessing Base Class Members
  • Multiple Inheritance
  • Base Class Construction
  • Constructor Delegation
  • Generalisation
  • Abstract Classes

Chapter 22 – Polymorphism

  • Virtual Functions
  • Override
  • Virtual Destructor
  • Pure Functions
  • Pure Abstract Class (Interface Class)
  • Null-Objects

Chapter 23 – Association

  • Association
  • Composition
  • Inheritance
  • Aggregation
  • Object Creation for Aggregation
  • new and delete
  • Array New & Delete
  • New and Delete Problems
  • Expressive Lifetime Management
  • unique_ptr
  • shared_ptr
  • Safe Aggregation
  • Multiple Association
  • Friendship


Contact us for more detail about our trainings and for all other enquiries!

Upcoming Trainings

Join our public courses in our Germany facilities. Private class trainings will be organized at the location of your preference, according to your schedule.

Classroom / Virtual Classroom
06 Juni 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
25 Juni 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
01 Juli 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
14 Juli 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
18 Juli 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
24 Juli 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
13 August 2024
Berlin, Hamburg, Münih
5 Days
Classroom / Virtual Classroom
25 August 2024
Berlin, Hamburg, Münih
5 Days

Related Trainings

Modern Expressive C++ Training Course in Germany

The Federal Republic of Germany is the second most populous country in Europe and is located in Central Europe. The official language of the country is German. Germany is one of the richest countries in the world. The main exports of the country include motor vehicles and iron and steel products.

Here are some fun facts about Germany:
The fairy tale writer, the Brothers Grimm, came from Germany and wrote many famous stories such as Cinderella, Snow White, and Sleeping Beauty.
Germany is home to the largest theme park in Europe, the Europa-Park.
The famous composer Ludwig van Beethoven was born in Germany.
The Autobahn, the German highway system, is known for having no general speed limit.


Berlin was divided by the Berlin Wall from 1961 to 1989. Known for its street art, Berlin has many colorful murals and graffiti throughout the city. Also, Berlin is home to many famous museums, such as the Pergamon Museum and the Museum Island. Many clubs and bars stay open until the early hours of the morning in this big city.

Another popular city is Munich, which is famous for its Oktoberfest beer festival that attracts millions of visitors every year. Munich is also home to many historic buildings, including Nymphenburg Palace and the Marienplatz town square.

The country's capital and largest city is Berlin, however Frankfurt is considered to be the business and financial center of Germany. It is home to the Frankfurt Stock Exchange, the European Central Bank, and many other financial institutions. Because of its central location within Europe and its status as a major financial hub, Frankfurt is often referred to as the "Mainhattan," a play on the city's name and its association with the Manhattan financial district in New York City.

Frankfurt is also a major transportation hub, with the largest airport in Germany and one of the largest in Europe, Frankfurt Airport. Additionally, it is a popular destination for tourists, with its historic city center, beautiful parks, and vibrant cultural scene.

Some of the top German technology companies like Siemens AG, Bosch, SAP SE, Deutsche Telekom, Daimler AG and Volkswagen has business centers in Frankfurt. The country has a strong tradition of engineering and innovation, and is home to many other world-class technology companies and research institutions.

Tailored to meet the specific needs of Germany, Bilginç IT Academy combines cutting-edge training methodologies with our comprehensive range of Certification Exam preparation courses and accredited corporate training programs. Experience a transformative approach to IT training that will redefine your expectations.
By using this website you agree to let us use cookies. For further information about our use of cookies, check out our Cookie Policy.