C++ Auffrischung
Zielgruppe:
Entwickler, die ihre C++-Kenntnisse wieder auffrischen und konsolidieren wollen.
Vorkenntnisse:
C++ Grundkenntnisse.
Dauer:
2 - 3 Tage, abhängig von den gewählten Modulen.
Beschreibung:
Dieser Kurs ermöglicht es C++-Programmierern, ihre vorhandenen C++-Kenntnisse auf Richtigkeit und Vollständigkeit zu überprüfen, verloren gegangenes C++-Know-how wiederherzustellen und eventuell noch fehlendes Wissen neu zu erwerben. Auf diese Weise entsteht eine solide Kenntnis der Programmiersprache C++, die es aufgrund der Speicherplatz- und Laufzeitbetrachtungen insbesondere auch Entwicklern von Embedded Software ermöglicht, leistungsfähige und zuverlässige Applikationen zu entwickeln. Der Kurs ist modular aufgebaut und kann somit bedarfsgerecht angepasst werden. Der Inhalt basiert auf dem Sprachstandard C++98/03. Die Eigenschaften der neueren Sprachstandards C++11, C++14, C++17 und C++20 werden in dem Kurs "Modernes C++" behandelt, der die Kenntnisse dieses Kurses voraussetzt.
Inhalt:
Nicht-Objektorientierte Spracheigenschaften
- Aufzählungstypen
- Datentyp bool
- Referenzen
- Funktionsüberladung
- Vorbelegungsparameter
- Namensbereiche
- Dynamische Speicherverwaltung
- Überladung von Operatoren
- Ein-/Ausgabe (cin/cout)
Klassen und Objekte
- Datenelemente, Attribute
- Elementfunktionen, Methoden
- Inlining
- Statische/nicht-statische Elemente
- this-Pointer
- Zugriffsrechte public und private
- Konstruktoren und Destruktoren
- Konstante Methoden
Operatoren als Klassenelemente
- Zuweisungsoperator
- Auswahloperator
- Typumwandlungsoperator
Vererbung
- Basis- und abgeleitete Klassen
- 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 Funktionstabelle
- Abstrakte Funktionen und abstrakte Klassen
- Interfaces
Templates
- Template-Funktionen
- Template-Parameter
- Spezialisierung
- Klassen-Templates
- Templates und Vererbung
- Explizite Template-Instanziierung
- Statische Polymorphie
- Meta-Programmierung
Ausnahmebehandlung (Exceptions)
- Exceptionbehandlung mit try und catch
- Mechanismus zum Auffinden des zuständigen catch-Handlers (Stack Unwinding)
- Auswertung der Exception-Information
- Exceptionfamilien
- Behandlung mehrerer Exceptions mit einem einzigen Handler
- Exception-Spezifikationen
- Exceptionbehandlung bei Nutzung von Ressourcen
- Standard-Exceptions