Objektorientierte Programmierung mit C++
Zielgruppe:
Entwickler, die ihre Anwendungen bisher in C entwickelt haben und dies in Zukunft objektorientiert mit C++ tun wollen.
Vorkenntnisse:
Gute Programmierkenntnisse in C.
Dauer:
5 Tage
Kursziel:
Der Kursteilnehmer ist in der Lage, Applikationen objektorientiert in C++ zu entwickeln. Insbesondere weiß er, worin der Vorteil der neuen Möglichkeiten wie z.B. Vererbung und Polymorphie gegenüber traditioneller C-Programmierung besteht.
Inhalt:
Neue Sprachmittel
- Datentyp bool
- Referenzen
- Funktionsüberladung
- Vorbelegungsparameter
- Namensbereiche
- Dynamische Speicherverwaltung (new/delete)
- Überladung von Operatoren
- Ein-/Ausgabe (cin/cout)
Von der Struktur zur Klasse
- Datenelemente, Attribute
- Elementfunktionen, Methoden
- Statische/nicht-statische Elemente
- this-Pointer
- Zugriffsrechte public und private
- Klasse
Konstruktoren und Destruktoren
- Standardkonstruktor
- Kopierkonstruktor
- Bei globalen und statischen Objekten und Arrays
- Bei Objekten, die Objekte enthalten
Operatoren als Klassenelemente
- Zuweisungsoperator
- Auswahloperator
- Typumwandlungsoperator
Vererbung und Aggregation
- Basis- und abgeleitete Klassen
- Vorteile der Vererbung gegenüber der Aggregation
- Modellierung der Basisklassenfunktionalität
- Auswirkungen auf Konstruktion und Destruktion
- Zugriffsrecht protected
- Ableitung mit Einschränkung der Zugriffsrechte
Virtuelle Funktionen und Polymorphie
- Statische und dynamische Bindung
- Virtuelle Funktionentabelle
- Abstrakte Funktionen und Klassen
Spezielle Mechanismen der Zugriffskontrolle
- Zugriffssteuerung mit friend
- Konstante Objekte und Methoden
Mehrfachvererbung
- Objektstruktur
- Interpretation als Basisklassenobjekt
- Auflösung von Namenskonflikten
Typumwandlung
- static_cast
- reinterpret_cast
- const_cast
- dynamic_cast
Ausnahmebehandlung (Exceptions)
- Fehlerbehandlung mit try, throw und catch
- Weiterleiten von Ausnahmen
- Gruppieren von Ausnahmen
Templates
- Funktionstemplates
- Klassentemplates
- Organisation des Quellcodes