C++











Aufbaukurs für C++



Aufbauend auf einem Grundverständnis von C++ wird in diesem Kurs in die Konzepte von ANSI-C++ (ISO-C++) eingeführt. 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 der "alte" und der "neue" Teil von C++ voneinander abgegrenzt und zueinander in Beziehung gebracht. Außerdem werden Chancen und Konsequenzen des Einsatzes verschiedener moderner Techniken an praktischen Beispielen demonstriert.

Da der neue ISO C++ Standard von 2011 noch nicht ausreichend von den Produktivcompilern unterstützt wird, wird in diesem Seminar nur am Rande auf dieses Thema eingegangen. Es gibt aber auch ein Seminar, das sich ausschließlich mit diesem Thema befasst: das Seminar zum neuen ISO C++ Standard 2011, ISO/IEC 14882:2011.

Themen:

  • Überblick über die Standardbibliothek
  • Namespaces und die using Direktive
  • Der ANSI-C++ Standard
  • Streamklassen (Methoden, Operationen und Manipulatoren)
  • Strings
  • Der Copy-Konstruktor
  • Virtuelle Destruktoren
  • Reimplementieren
  • Statische Elemente
  • Statische Methoden
  • Verschachtelte Klassen
  • Vererbung unterschiedlicher Sichtbarkeit
  • Virtuelle Vererbung
  • Scopes
  • V-Tables und RTTI
  • Die Standard Template Library (STL)
  • Container im Allgemeinen
  • Listen
  • Vektoren
  • Sets
  • Multisets
  • Iteratoren
  • Algorithmen
  • Funktionsobjekte
  • Generische Programmierung
  • Idiome in C++
  • Der Einsatz von Exception Handling
  • Wichtige C++-Literatur

Die Programmiersprache wird anhand praktischer Beispiele erlernt. Dabei kann ein beliebiger C++ Compiler eingesetzt werden. Vorzugsweise werden GNU C++, MS Visual C++ oder Borland 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, MacOS X, Linux oder UNIX - sollte den Entwicklern gut bekannt sein.
Neben den oben genannten C++-Themen werden im Seminar auch wichtige Publikationen zu C++ besprochen und aktuelle Problemstellungen diskutiert.