Zentrale Konzepte: Dein Verständnis für essentielle und moderne C++‑Features festigen.
Hands-on Fokus auf Arrays, Funktionen, Speicherverwaltung, OOP, Templates, STL und Nebenläufigkeit.
Starke Grundlage für fortgeschrittene Themen und Zertifizierung schaffen.
Praktische Erfahrung sammeln durch aktives Programmieren (~70% Praxis).
Wie dieser Kurs hilft: Sicherheit im Einsatz von C++ in echten Projekten.
Für wen: gedacht für Entwickler/innen mit C++‑Grundkenntnissen, die den nächsten Schritt gehen wollen.
Am Ende setzt du C++ auf mittlerem Niveau sicher ein und bereitest dich auf die CPA‑Prüfung vor.
Curriculum
Einführung in die C++‑Programmierung
- Build‑Prozess: von Source zu Binary; während des Builds entstehende Artefakte
- Arbeiten mit Strings
- Standard Input und Output
- String‑Formatierung
- Kontrollfluss: Bedingungen, Schleifen, switch
- Gleitkommazahlen: Repräsentation, Präzision, Vergleich
- Arbeiten mit Arrays
- Mehrdimensionale Arrays und deren Größen
- Array‑Operationen: Sortieren und einfache Reduce‑Operationen
Elemente von modernem C++
- Das Schlüsselwort auto
- nullptr
- Return type deduction
- decltype, typeid, type traits
- Strongly‑typed enums (scoped enums)
- static_assert und Anwendungen
- override
- Defaulted constructors
- constexpr
- Arbeiten mit Zufallszahlen in modernem C++
Der Funktionsmechanismus
- Arbeiten mit Funktionen
- Funktionsparameter
- Return type
- Lokale vs. globale Variablen
- Warnhinweise zu globalen Variablen
Pointer und Speicher
- Variablen und Adressen; Memory Layout
- Pointer‑Grundlagen und Pointer‑Arithmetik
- NULL vs. nullptr
- Dynamische Allokation mit new und delete
- Pointer und Arrays; mehrdimensionale Arrays
- Arrays und Funktionen
OOP in C++
- struct vs. class; Klassen und Objekte
- Abstraktion und Kapselung
- Konstruktoren/Destruktoren; Überladen von Konstruktoren
- Initialization list vs. member initialization
- Das Schlüsselwort this
- friend, private, protected, public
- Komposition, Vererbung, Polymorphie, dynamic dispatch
- finale Klassen/Methoden; override und delete
- Delegating constructors
Templates
- Function templates und Type Inference
- Class templates; nested template classes
- Variadic templates
Praktische funktionale Programmierung
- Function pointers
- Functors
- Lambdas
- Lambda‑Parameter und Return Types
- Lambda capture expressions
- Wie Lambdas funktionieren
- Generic Lambdas; mutable Lambdas
Standard Template Library
- Vectors; Vectors und Speicher; mehrdimensionale Vectors
- Lists
- Maps (Objekte als Werte und Schlüssel)
- Multimaps
- Sets
- Stacks
- Queues und Deques
- Algorithms
Multithreading und Parallelismus
- Grundlagen: visibility, atomicity
- Atomic operations in modern C++
- Mutexes und Locks
- Condition variables: Nutzung und Szenarien
Unter der Haube
- Laufzeitkosten von C++‑Features
- Virtual und pure virtual functions
- Objektadressen bei (mehrfacher) Vererbung
- No‑cost C++ features vs. low‑cost C++ features
Verschiedenes
- rvalues und lvalues
- lvalue references vs. rvalue references
- Move constructors und Move‑Assignment‑Operatoren
Kursablauf
- Teil 1: 09:00–10:30
- Pause: 10:30–10:45
- Teil 2: 10:45–12:15
- Mittagspause: 12:15–13:15
- Teil 3: 13:15–15:15
- Pause: 15:30–15:45
- Teil 4: 15:45–17:30