This advanced C++ training is a course on object-oriented (OO) software design with the C++ programming language.

Tags:Programming Languages (LNG)TrainingGerman

Overview

This advanced C++ 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.

Contents

Contents

1st day schedule (9:00 - 17:30)

Essential Object-Oriented Design Principles

The core of object-oriented programming

The SOLID principles

Concepts and the STL

Overview of the STL

Proper use of the STL

Class Design

Know what your compiler does for you

Inside/Outside: What should (not) be inside a class?

2nd day schedule (9:00 - 17:30)

Class Design (cont.)

Const Correctness

Interface design

Visibility vs. Accessibility

Robust Code

Error propagation

Exception Safety

RAII

Handling Legacy Code

Proper Use of Dynamic Inheritance

Non-public inheritance

Public inheritance

3rd day schedule (9:00 - 16:30)

Dependency-Breaking Techniques

Non-Intrusive Design

C++ 11/14 Update

Gained Skills

After this course, participants ...

... will have a detailed understanding of the essential OO design principles

... will have gained knowledge about fundamental C++ programming concepts and idioms

... will be able to properly design classes and class interfaces

... will know about the importance of exception safe programming

... will avoid the usual pitfalls in the context of inheritance

... will comprehend the advantages of non-intrusive design

... will understand the virtue of clean code

Prerequisites

Prerequisites

Course participants should have basic UNIX/Linux knowledge (login with secure shell, shell commands, simple scripts, editor vi or emacs). Solid base on C++ and at least one year of experience with the language is needed.

Registration

Fee

Students without Diploma/Master: 30 EUR. Students with Diploma/Master (PhD students) at German universities: 60 EUR. Members of German universities and public research institutes: 60 EUR.Members of universities and public research institutes within EU or PRACE member countries: 120 EUR. Members of other universities and public research institutes: 240 EUR. Others: 600 EUR. (includes coffee breaks)