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

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.