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 Programmiersprachen C und C++ sind ein Hauptgegenstand des Kurses. Da C++ auf dem C-Speichermodell basiert und der Einsatz des Compilers und Linkers im wesentlichen gleich sind, wird auf dem vorhandenen Vorwissen von C Entwicklern aufgebaut, um sich den Sprachstrukturen von ISO C++ zuzuwenden. ISO C++ ist eine Programmiersprache die komplexe Softwareentwü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 Standardisierungsprozess 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 Programmiersprache 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
  • Typenkonvertierung
  • Zeiger und Referenzen
  • Klassenkonzept
  • Datenkapselung
  • Attribute und Methoden
  • Sichtbarkeitskonzept
  • Funktionsüberladung
  • Operatorüberladung
  • Das C++ Namemangling
  • Typenkonvertierung
  • Konstruktoren und Destruktoren
  • Instantiierung von Objekten
  • Dynamische Speicherallokation
  • malloc() und free() versus new und delete
  • Vererbung
  • Virtuelle Methoden
  • Abstrakte Klassen
  • Polymorphie
  • Mehrfachvererbung
  • Exception Handling
  • Templates
  • Funktionstemplates
  • Klassentemplates
  • Die Objektorientierte Programmierung
  • Vergleich der Sprachen C und C++
  • Prinzipien der OO-Modellierung
  • Sinn und Unsinn von Klassenhierarchien
  • Diskussion der Abstraktionsebene der OOP
  • Einsatzbereiche von C++
  • Betrachtungen zum Laufzeitverhalten
  • Sprachstandard und Compilerverhalten
  • 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 Namenskonventionen unterstützen. Wichtig ist natürlich der Einsatz einer Plattform, die den Teilnehmern gut bekannt ist - vorzugsweise Windows, MacOSX oder Linux. Natürlich kann auch jedes beliebige UNIX-System als Entwicklungs- und Übungsplattform für die Schulung eingesetzt werden.

Zuletzt geändert am 19.08.2020