C++ Programmierung

Objektorientiertes Programmieren in C++

Die weit verbreitete objektorientierte Programmiersprache C++ eignet sich vor allem zum Entwickeln hocheffizienter Software für technisch-wissenschaftliche und für hardwarenahe Aufgaben. Für C++ (2003 ISO normiert) existieren viele umfangreiche, plattformunabhängige und hochwertige Klassenbibliotheken. C++ erlaubt es, als eine "hybride" Erweiterung der Programmiersprache C, (bestehende) C-Programme einzubinden.

Dieser Kurs legt viel Aufmerksamkeit auf das Verstehen und praktische Üben der Objekt-Orientierungs Grundlagen (Delegation, Datenkapselung, Vererbung, Polymorphie, dynamisches Binden). Wichtige "eher technisch orientierte Themen", wie z.B. "Zeiger", "wohin zeigt der this-Zeiger?" und "dynamisches Binden realisiert durch vtables", kommen dabei nicht zu kurz. Es soll nicht verschwiegen werden, dass C++ eine komplexe Sprache ist, die einen hohen Lernaufwand erfordert. Dieser Kurs legt solide Grundlagen für die Mitarbeit an bestehenden C++ Projekten.

Eine weitere Stärke von C++ liegt in der generischen Programmierung (Templates), um Code Wiederzuverwenden. Dafür legt dieser Kurs ebenfalls die Grundlagen.

Trainer und Dozenten

Michael Kerkhoff hat in Münster Dipl. Mathematik mit Nebenfach Informatik studiert. Seit 1998 gibt er OO Kurse bei verschiedenen Firmen. Er arbeitet freiberuflich seit 1992.

Voraussetzungen

Dieser Kurs richtet sich an Einsteiger und Sprachumsteiger. Als Voraussetzung für diesen Kurs sollten Sie über grundlegende Kenntnisse in einer (prozeduralen) Programmiersprache (wie z.B. c, PHP, Perl, Shell, Python, Javascript, Java, Pascal, Delphi, Fortran) verfügen. Grundlegende Kenntnisse (Variablen, Ausdrücke, Anweisungen) in einer solchen Sprache reichen vollkommen aus.

Inhalt

  • Datentypen
  • Zeiger, der Adress-Operator und void*
  • Tabellen (Zeiger und Zeigerarithmetik)
  • "Call by reference" versus "Call by value"
  • Klassen, Objekte und Zeiger bzw. Referenzen auf Objekte
  • Objekte und Tabellen dynamisch erzeugen und entfernen (new und delete)
  • Objektverbindungen - 1:1-Verbindungen
  • Operationen, Methoden und der this-Zeiger
  • Konstruktoren, Memberinitialisierungsliste, Copy-Konstruktor
  • Destruktoren
  • Datenkapselung
  • Objektverbindungen - 1:n-Verbindungen
  • Klassenvariablen und -funktionen (static Elemente)
  • C-Strings und die Klasse string der STL
  • Vererbung
  • Private Vererbung ("Implementierungsvererbung")
  • Polymorphie
  • Virtuelle Funktionen und Dynamisches Binden
  • Die VTbl-Struktur
  • Mehrfachvererbung
  • C++-Referenzen ("Zeiger mit Tarnkappe")
  • Rein virtuelle Funktionen und Abstrakte Klassen
  • Interfaces
  • Generische Datentypen (C++ Templates)
  • Überladen von Operatoren (insbes. = und ==)
Ausblick:
  • Der Begriff Standard Template Library (STL) wird erklärt, aber aus Zeitgründen wird die STL nicht in diesem Kurs behandelt