Aufbauseminar ANSI/ISO C++

Aufbauend auf einem Grundverständnis von C++ wird in diesem Kurs in die weiterführenden Konzepte von ANSI/ISO C++ eingeführt. Dafür werden die aktuell in der Industrie gebräuchlichen Standards - C++98, C++11/14 und C++17 - eingesetzt. Dabei werden insbesondere die Techniken der Standardbibliothek und der generativen Programmierung betrachtet. Die Templateprogrammierung als wesentliche Erweiterung von ANSI/ISO C++ gegenüber älteren C++-Dialekten führte zu einem Paradigmenwechsel in der Architektur der Standardbibliothek. Sie lässt diesen Paradigmenwechsel auch für eigene Architekturen zu und eröffnet ganz neue Anwendungsbereiche und Möglichkeiten, die Sprache in Projekten einzusetzen. Es werden die unterschiedlichen Anteile von C++ aus den verschiedenen Standards voneinander abgegrenzt und zueinander in Beziehung gesetzt. Außerdem werden Chancen und Konsequenzen des Einsatzes verschiedener moderner Techniken an praktischen Beispielen demonstriert.

Die folgenden Themen werden durchgenommen:

  • Überblick über die Standardbibliothek
  • Namespaces und die Direktive using
  • Die ISO-C++ Standards C++98, C++11, und C++14
  • Streamklassen (Methoden, Operationen und Manipulatoren)
  • Strings
  • Der Copy-Konstruktor
  • Virtuelle Destruktoren
  • Reimplementierung virtueller Methoden
  • Statische Elemente
  • Statische Methoden
  • Verschachtelte Klassen
  • Der Copy-Konstruktor
  • Der Move-Konstruktor
  • Der Zuweisungsoperator
  • Vererbung unterschiedlicher Sichtbarkeit
  • Virtuelle Vererbung
  • Scopes
  • V-Tables und RTTI
  • Programmierung mit Templates
  • Generische Programmierung
  • Die Standard Template Library (STL)
  • Container im Allgemeinen
  • Listen
  • Vektoren
  • Sets
  • Multisets
  • Maps
  • Multimaps
  • Iteratoren
  • Algorithmen
  • Funktionsobjekte
  • Idiome in C++
  • Der Einsatz von Exception Handling
  • Wichtige C++ Literatur
  • .. weitere

Die Programmiersprache wird anhand praktischer Beispiele erlernt. Dabei kann ein beliebiger C++ Compiler eingesetzt werden. Vorzugsweise werden GNU C++, Clang C++ oder MS Visual C++ verwendet. Sehr wichtig für diesen Kurs ist ein Compiler, der die wesentlichen Sprachmerkmale von ANSI/ISO C++ bezüglich Namespaces und Namenskonventionen unterstützen. Die Entwicklungsplattform - vorzugsweise Windows, Mac OS X, Linux oder UNIX - sollte den Entwicklern gut bekannt sein. Neben den oben genannten C++-Themen werden auch aktuelle Publikationen zu ANSI/ISO C++ besprochen.

Zuletzt geändert am 10.07.2021