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 Standard­bibliothek
  • Namespaces und die Direktive using
  • Die ISO-C++ Standards C++98, C++11, und C++14
  • Stream­klassen (Methoden, Operationen und Manipulatoren)
  • Strings
  • Der Copy-Konstruktor
  • Virtuelle Destruktoren
  • Reimplemen­tierung virtueller Methoden
  • Statische Elemente
  • Statische Methoden
  • Verschachtelte Klassen
  • Der Copy-Konstruktor
  • Der Move-Konstruktor
  • Der Zuweisungs­operator
  • Vererbung unterschied­licher Sicht­barkeit
  • Virtuelle Vererbung
  • Scopes
  • V-Tables und RTTI
  • Programmierung mit Templates
  • Generische Program­mierung
  • Die Standard Template Library (STL)
  • Container im Allgemeinen
  • Listen
  • Vektoren
  • Sets
  • Multisets
  • Maps
  • Multimaps
  • Iteratoren
  • Algorithmen
  • Funktions­objekte
  • Idiome in C++
  • Der Einsatz von Exception Handling
  • Wichtige C++ Literatur
  • .. weitere

Die Themen des Seminars werden 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 Namens­konventionen 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 12.05.2024