Skip to content

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.

· 8 Min. Lesezeit

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
Weiterlesen
· 6 Min. Lesezeit

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
Weiterlesen
Passende Leistung: C++ Software-Entwicklung Mehr erfahren →

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