Seminar zur C++ Programmierung für C Programmierer

In diesem C++ Kurs wird eine Einführung in die objektorientierte Programmierung gegeben und der prozeduralen Programmierung mit C gegenübergestellt. Die Gemeinsamkeiten und die Unterschiede der Programmier­sprachen C und C++ sind ein Haupt­gegenstand des Kurses. Da C++ auf dem C-Speichermodell basiert und der Einsatz des Compilers und Linkers im wesentlichen gleich ist, wird auf dem vorhandenen Vorwissen von C Entwicklern aufgebaut, um sich den Sprachstrukturen von ISO C++ zuzuwenden. ISO C++ ist eine Programmier­sprache die komplexe Software­entwürfe ermöglicht und mit der Laufzeiteffizienz von C verbindet. Die sprachlichen Strukturen sind einerseits ausdrucksstark andererseits schwer zu erlernen, da die vielen Veränderungen der letzten Jahre vor dem Standardisierungs­prozess die Sprache stark gewandelt haben. Waren es bis Anfang der neunziger Jahre noch die objektorientierten Eigenschaften der Sprache, die ihren Kern ausmachten, so sind es inzwischen die Konzepte der generativen Programmierung, die sich gleichberechtigt neben die OO-Sprachkonstrukte stellen. Im Kurs wird auch ein Überblick über diese Entwicklung gegeben und es werden die Hintergründe der genannten Techniken angesprochen. Dieses Seminar befasst sich vor allem mit den Grundlagen der objektorientierten Programmierung mit ISO C++. Dabei ist für den Kurs die Kenntnis der Programmier­sprache C erforderlich.

Die folgenden Themen werden durchgenommen:

  • Historische Entwicklung von C++
  • Grundlegende Syntax
  • Erster Vergleich von C++ mit C
  • Die Anteile der Sprache C in C++
  • Funktions­überladung
  • Operator­überladung
  • Operatoren
  • Typenkonver­tierung
  • Zeiger und Referenzen
  • Klassenkonzept
  • Datenkapselung
  • Attribute und Methoden
  • Sichtbarkeits­konzept
  • Das C++ Namemangling
  • Klassen­methoden
  • Konstruktoren und Destruktoren
  • Instanzi­ierung von Objekten
  • Dynamische Speicher­allokation
  • malloc() und free() versus new und delete
  • Vererbung
  • Virtuelle Methoden
  • Abstrakte Klassen
  • Polymorphie
  • Mehrfach­vererbung
  • Exception Handling
  • Templates
  • Funktions­templates
  • Klassen­templates
  • Die Objekt­orientierte Program­mierung
  • Vergleich der Sprachen C und C++
  • Prinzipien der OO-Modellierung
  • Sinn und Unsinn von Klassen­hierarchien
  • Diskussion der Abstraktions­ebene der OOP
  • Einsatz­bereiche von C++
  • Betrachtungen zum Laufzeit­verhalten
  • Sprach­standard und Compiler­verhalten
  • Aufbau von C++ Projekten
  • .. und weitere

Die Programmiersprache wird anhand praktischer Beispiele erlernt. Dabei kann ein beliebiger C++ Compiler eingesetzt werden. Vorzugsweise werden GNU C++ oder MS Visual C++ verwendet. Der Compiler sollte nicht zu alt sein und die wesentlichen Sprachmerkmale von ANSI/ISO C++ bezüglich Namespaces und Namens­konventionen unterstützen. Wichtig ist natürlich der Einsatz einer Plattform, die den Teilnehmern gut bekannt ist - vorzugsweise Windows, Mac OS X oder Linux. Natürlich kann auch jedes beliebige UNIX-System als Entwicklungs- und Übungsplattform für die Schulung eingesetzt werden.

Zuletzt geändert am 12.05.2024