Modern C++ Software Design

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
Live (synchronous)

Venue Information

Country: Germany
Venue Details: Click here

Training Content and Scope

Scientific Domain
Level of Instruction
Sector of the Target Audience
Research and Academia
Public Sector
Other (general public...)
HPC Profile of Target Audience
Application Developers
Language of Instruction

Other Information

Event/Course Description

This advanced C++ online training is a course on object-oriented (OO) software design with the C++ programming language. The focus of the training are the essential OO and C++ software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. The course will not address special areas and applications of C++, such as for instance Template Meta Programming (TMP), or the quirks and curiosities of the C++ language. It rather teaches guidelines to develop mature, robust, and maintainable C++ code. The following topics will be covered: 

Day 1 schedule:

  • Concepts and the STL
  • Overview of the STL
  • Proper use of the STL
    • Proper use of algorithms
    • Proper use of containers

Day 2 schedule:

  • Class Design
    • Compiler Generated Functions
    • Copy Elision
    • Move Semantics
    • Return Values and Parameters
    • Object Lifetimes
    • RAII
    • Member Data

Day 3 schedule:

  • Class Design
    • Applied Class Design
    • Visibility vs. Accessibility
  • Dynamic Polymorphism
    • Motivation
    • Classical Design Patterns Revisited
    • Public Inheritance
    • Surprises in Object Hierarchies