Course/Event Essentials
Event/Course Start
Event/Course End
Event/Course Format
Online
Live (synchronous)
Primary Event/Course URL
Training Content and Scope
Scientific Domain
Technical Domain
Level of Instruction
Beginner
Intermediate
Sector of the Target Audience
Research and Academia
Industry
Public Sector
Other (general public...)
HPC Profile of Target Audience
Application Developers
Language of Instruction
Other Information
Organiser
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