C++-Schulung: modernes C++ sicher und wirksam einsetzen
Drei Tage, die aus C++-Code, der wie C mit Klassen aussieht, modernen C++-Code machen. Mit klarem Blick darauf, welche Sprachmittel auf beschränkter Hardware tatsächlich nichts kosten – und welche eben doch.
- Niveau
- Fortgeschritten
- Dauer
- 3 Tage
- Formate
- Inhouse · Remote
Schwerpunkte
- Move-Semantik & RAII
- Smart Pointer & Ownership
- Templates & Concepts
- Ranges, Lambdas, constexpr
Für wen diese Schulung gedacht ist
Für Entwickler, die C++ produktiv einsetzen und dabei überwiegend auf einem Stand arbeiten, der vor Jahren gesetzt wurde. Typisch ist eine gewachsene Codebasis mit manuellem Speicher-Management, rohen Zeigern und Kommentaren, die erklären, wer wofür verantwortlich ist – Dinge, die moderneres C++ im Typsystem ausdrückt statt in Prosa.
Ebenso für Teams, die den Standard bereits angehoben haben, aber die neuen Sprachmittel nur punktuell nutzen, weil unklar ist, was sie kosten.
Inhalte
Tag 1 – Ressourcen und Ownership. RAII als Grundprinzip, nicht als Stilfrage. Move-Semantik: was tatsächlich passiert, wann der Compiler sie einsetzt und warum ein falsch geschriebener Konstruktor sie stillschweigend verhindert. Smart Pointer und die Frage, die dahintersteht: Wem gehört dieses Objekt und wie lange. Wir überarbeiten gemeinsam Beispielcode und machen Besitzverhältnisse aus Kommentaren zu Typen.
Tag 2 – Abstraktion ohne Laufzeitkosten. Templates jenseits von Containern, constexpr und was zur Übersetzungszeit erledigt werden kann. Concepts als lesbare Anforderungen an Template-Parameter – der Punkt, an dem Fehlermeldungen wieder verständlich werden. Ranges und Algorithmen statt handgeschriebener Schleifen. Durchgehend mit Blick darauf, was im erzeugten Code landet.
Tag 3 – Robustheit im Alltag. Fehlerbehandlung: Exceptions, Rückgabetypen und die Abwägung dahinter, gerade wenn Exceptions im Projekt abgeschaltet sind. Nebenläufigkeit: Threads, Locks, atomare Operationen und die typischen Fallen. Werkzeuge, die Fehler finden, bevor der Kunde es tut – Sanitizer, statische Analyse, Unit-Tests als Teil des Entwurfs.
Was Ihr Team danach kann
Besitzverhältnisse im Typsystem ausdrücken statt in Kommentaren. Beurteilen, ob eine Abstraktion zur Laufzeit etwas kostet – und es im Zweifel nachmessen. Templates schreiben, deren Fehlermeldungen lesbar bleiben. Und in einer bestehenden Codebasis begründet entscheiden, welche Modernisierung sich lohnt und welche nur Bewegung ist.
Voraussetzungen
Praktische C++-Erfahrung. Vertrautheit mit Klassen, Vererbung und Templates auf Anwendungsniveau. Kenntnis der neueren Standards ist nicht nötig – genau darum geht es.
Format und Ablauf
Drei Tage, inhouse oder remote. Der Anteil eigener Arbeit ist hoch: Wir überarbeiten vorbereiteten Code gemeinsam, statt Sprachmittel isoliert vorzuführen.
Für Teams mit Embedded-Schwerpunkt vertiefen wir die Abschnitte zu Code-Größe, Allokation und Echtzeitverhalten – die Zusammenhänge dazu haben wir im Beitrag zu modernem C++ für Embedded-Systeme beschrieben.
Häufige Fragen
- Auf welchen Standard schulen Sie?
- Der Schwerpunkt liegt auf C++17 als heute breit verfügbarer Basis, mit den praktisch relevanten Ergänzungen aus C++20 und C++23. Welcher Standard bei Ihnen realistisch einsetzbar ist, hängt am Compiler Ihrer Toolchain – das klären wir vorab und richten die Inhalte danach aus.
- Ist die Schulung für Embedded-Entwicklung geeignet?
- Ja, das ist unser Blickwinkel. Wir behandeln durchgehend, was ein Sprachmittel zur Laufzeit und an Code-Größe kostet, und gehen auf die Punkte ein, die in Embedded-Projekten regelmäßig diskutiert werden: Exceptions, RTTI, dynamische Allokation und deren Vermeidung im heißen Pfad.
- Unser Team ist unterschiedlich weit. Funktioniert das?
- Bis zu einem gewissen Grad, und wir planen es ein: Die Übungen haben jeweils einen Kern und eine Erweiterung, sodass erfahrenere Teilnehmer nicht warten müssen. Bei sehr großem Gefälle ist eine Aufteilung in zwei Gruppen aber der bessere Weg – das besprechen wir vorab ehrlich.
- Behandeln Sie auch Tests und Werkzeuge?
- Ja, in dem Umfang, in dem sie zum Schreiben von gutem C++ gehören: Unit-Tests als Teil des Entwurfs, Sanitizer zum Aufdecken von Speicher- und Nebenläufigkeitsfehlern, statische Analyse. Kein eigener Werkzeug-Kurs, aber die Werkzeuge, die den Unterschied machen.
Fachartikel zum Thema
Vertiefendes aus unserem Blog – dieselben Themen, ausführlich.
Modernes C++ (17/20/23) für Embedded-Systeme
Wie C++17, C++20 und C++23 Embedded-Software sicherer und klarer machen – bei kaum Laufzeitkosten, diszipliniert eingesetzt auf beschränkten Zielen.
- C++
- Modern C++
- Embedded
Echtzeit mit Linux: was PREEMPT_RT leistet – und was nicht
Determinismus statt Tempo: wie PREEMPT_RT Linux echtzeitfähig macht, wie Sie Latenzen mit cyclictest belastbar messen und welche System- und Anwendungsfehler jede Konfiguration wieder zunichtemachen.
- Echtzeit
- PREEMPT_RT
- Embedded Linux
Qt als zentraler Bestandteil für Multiplattformumgebungen
Eine Codebasis für Embedded, Desktop und Mobile: Wie Qt mit konsequenter Trennung von Logik und UI echte Multiplattform-Produkte ermöglicht.
- Qt
- Multiplattform
- C++
Weitere Schulungen
Qt & QML in der Praxis
Der praxisnahe Einstieg in die Qt-Welt: Aufbau von Anwendungen mit Qt Quick und QML, Anbindung von C++-Logik und Gestaltung performanter Benutzeroberflächen.
2 TageEmbedded Linux Grundlagen
Verstehen Sie den Aufbau eines Embedded-Linux-Systems – von Bootloader und Kernel über das Root-Dateisystem bis zur eigenen Applikation auf realer Hardware.
3 TageYocto Project Intensiv
Bauen Sie Ihre eigene Linux-Distribution mit dem Yocto Project: BitBake, eigene Layer und Rezepte, Image-Anpassung und reproduzierbare Builds in der CI.
2 TageGit & Versionsverwaltung
Versionsverwaltung, die im Team trägt: Branching-Strategien, saubere Historie, Code-Review-Abläufe und der Umgang mit den Situationen, in denen Git wehtut.
Diese Schulung für Ihr Team?
Sagen Sie uns kurz, wie viele Teilnehmer, welcher Stand und welcher Zeitrahmen – wir machen Ihnen einen Vorschlag samt Terminen.
Projekt anfragen