Zum 01. September 2024 ging der Geschäftsbetrieb der MicroConsult Microelectronics Consulting & Training GmbH über an die MicroConsult Academy GmbH. Diese wird das Geschäft in vollem Umfang, mit dem bewährten Personal und mit der gewohnten hohen Qualität weiterführen. Ihre Fragen beantworten wir gerne unter kontakt@microconsult.com.

Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

C++ Schulung für Fortgeschrittene: Weiterführende Programmiertechniken für C++ Entwickler - Live-Online-Training

Mit steigender Softwarekomplexität ist es in vielen Applikationen sinnvoll, fortgeschrittene C++ Konstrukte einzusetzen; gleichermaßen unterstützen Änderungen und Erweiterungen des aktuellen C++ Standards.

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Sie wenden Templates und Exceptions effizient an. Sie haben fundierte Kenntnisse der Standard Template Library (STL). Sie realisieren fortgeschrittene objektorientierte Konzepte und Designs mit C++, auch zusammen mit C++ Multithreading. Sie sind in der Lage, bestehende und neue Applikationen in Bezug auf Performance und Verbrauchsverhalten zu optimieren.

Der C++ Kurs für Fortgeschrittene richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten.

Sie sollten die C++ Grundlagen, wie sie im Training "C++ für Ein- und Umsteiger" vermittelt werden, beherrschen.

Themeneinleitung

  • Historie zu C++
  • Prinzipielle Compiler-Funktionalität
  • Praxistipps: Wertvolle Links im Internet

Kurze Zusammenfassung der C++ Grundlagen

  • Variablen-Kategorien, Typen, Alignment
  • Klassen und Objekte
  • Konstruktor-Arten und Destruktor
  • Operatoren mit Überladung
  • Funktionszeiger in Klassen
  • Strings und Streams
  • Klassenrelationen: Assoziation, Selbst-Assoziation, Aggregation, Komposition, Vererbung, Mehrfachvererbung und Alternativen
  • Interface-Konzept mit rein virtuellen Funktionen
  • Neue Features der aktuellen Standards
  • Übung: Sie verstehen die vorgegebene SW-Architektur und lernen dabei das Builder-Pattern kennen, implementieren Klassen, Komposition und Vererbung und testen diese automatisiert nach dem TDD-Vorgehen (Test Driven Development).
  • Dabei berücksichtigen Sie Qualitätsaspekte wie objektorientierte Programmierung, Modularisierung, Wiederverwendbarkeit und Erweiterbarkeit

Exceptions

  • Erläuterung und Programmierung Exception Handling
  • Exception-Klassen und -Hierarchien
  • Benutzer-Exceptions
  • C++ Standard-Exceptions
  • Praxistipps: Konzepte, Richtlinien
  • Übung: Sie erweitern die Übungsapplikation um flexible
  • Ausnahmebehandlung mit Exceptions

New Style Casts

  • Static, dynamic, const und reinterpret Cast
  • Die richtige Wahl beim Einsatz
  • Bezug zu RTTI und Exception Handling

Runtime Type Information (RTTI)

  • Erläuterung und Programmierung von RTTI
  • Klasse type_info
  • Verwendungsmöglichkeiten und Konsequenzen beim Einsatz

Lamda-Funktionen

  • Syntax und Anwendung
  • Closures
  • std::function
  • Binden von Parametern

Speichermanagement

  • Speichersegmente (BSS Block Started by Symbol, Heap, Stack)
  • Vergleich und Bewertung der Datensegmente
  • Dynamisches Speichermanagement mit new und delete
  • Überladen (lokal und global) von new und delete
  • Algorithmen
  • Virtueller Destruktor
  • Placement new
  • Bezug zu Exception Handling
  • Smart Pointer: unique_ptr, shared_ptr, weak_ptr
  • Casten von Smart-Pointern
  • Praxistipps: Risiken erkennen und Stolpersteine vermeiden

Template-Funktionen und Template-Klassen

  • Prinzipielle Funktionsweise
  • Template-Funktionen, Template-Klassen und deren Anwendung
  • Beispiele für Template-Klassen
  • Vererbung und Interfaces mit Template-Klassen
  • Container/Algorithmen im STL-Stil
  • Laufzeit- vs. Compilezeit-Polymorphismus
  • Type-Traits
  • Perfect Forwarding mit Templates
  • Variadic Template-Funktionen und Template-Klassen
  • Alias-Templates
  • Praxisbeispiele für Template-Klassen
  • Übung: Sie wenden das Observer-Pattern im Design der Applikation an und implementieren es basierend auf einer containerartigen eigenen Template-Klasse

STL Standard Template Library

  • Container, Container-Adapter
  • Iteratoren
  • Algorithmen, Funktionsobjekte
  • Speicher-Allocator-Klasse
  • Praxistipp: Übersicht über alle STL-Containerelemente und deren Zusammenhänge
  • Übung: Sie wenden das Observer-Pattern im Design der Applikation an und implementieren es basierend auf einer STL-Container-Klasse

Multithreading und Atomic-Datentypen

  • Multithreading-Grundkonzepte
  • Threads, Mutex, Condition Variable, Future
  • Anwendung der Mechanismen
  • Übung: Sie adaptieren die Applikation an einen Timer und steuern sie über einen Thread. Dabei nutzen Sie mit ihren Vorteilen eine zusätzliche Betriebssystem-Abstraktion mit Wrapper-Klassen.

Typische Fallstricke und verbreitete Idiome (PIMPL, RAII, NVI, ...)

  • RAII (Resource Acquisition Is Initialization), Ressourcen-Wrapper
  • NVI (Non-virtual Interfaces)
  • PIMPL (Pointer to Implementation)
  • Handling Self-Assignment in Assignment Operator
  • Praxistipps zu weiteren C++ Idiomen

Übungen im C++ Kurs für Fortgeschrittene

  • Für die Implementierung der durchgängigen Übung (Uhrenapplikation) verwenden Sie das Microsoft Visual Studio.

MicroConsult PLUS:

  • Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.

Im Preis enthalten:
Trainingsdokumentation, Ihr Zertifikat sowie ggf. erforderliche Ziel-HW o.ä.


ALL INCLUSIVE!

Spätestens 3 Wochen vor Trainingsbeginn erhalten Sie eine verbindliche Durchführungsbestätigung.

Einige Tage vor dem Live-Online-Training erhalten Sie von uns E-Mails mit …

  • ausführlichen Infos rund um Ihr Training
  • Ihre Schulungsunterlagen (Download-Link)
  • einer Einladung zu einer optionalen Probesession mit dem Trainer
  • einer Einladung für die Schulungstage, mit Link und Zugangsdaten

Ggf. erforderliche Übungs-HW senden wir Ihnen rechtzeitig vorab zu.


ABLAUF

Verwandte Trainings

C++ Quick Refresh: Schnelleinstieg/Auffrischung - Live-Online-Training
Anmeldecode: L-C++/REF

C++ Schulung für Ein- und Umsteiger: Grundlegende Programmiertechniken für C++ Entwickler - Live-Online-Training
Anmeldecode: L-C++

Modernes C++: Die wichtigsten Sprachneuerungen von C++11 bis C++20 - Präsenz-Training
Anmeldecode: C++/MOD

C++: Standard- und Boost-Library Workshop - Live-Online-Training
Anmeldecode: L-C++/LIB

C++ Standard Template Library: STL Container und Algorithmen - Live-Online-Training
Anmeldecode: L-C++/STL

C++ Multithreading - Live-Online-Training
Anmeldecode: L-C++MT

Clean Code für C-Programme: Softwareentwicklung als Handwerkskunst - Der Weg zum Clean Code - Live-Online-Training
Anmeldecode: L-CLEANC

Objektorientierte Softwareentwicklung: Spezielle Programmierprinzipien mit C++ - Der Weg zum Clean Code - Live-Online-Training
Anmeldecode: L-OOPFC++

Embedded C++ für Fortgeschrittene: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ - Live-Online-Training
Anmeldecode: L-EC++FOR


Verwandte Trainings

Live Online Training

Termin Preis *Dauer
17.02. – 20.02.20252.600,00 €4 Tage 
17.11. – 20.11.20252.600,00 €4 Tage 
26.01. – 29.01.20262.600,00 €4 Tage 
Anmeldecode: L-C++/FOR
* Preis je Teilnehmer, in Euro zzgl. USt.

> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Präsenz-Training - Deutsch

Termin Dauer
23.06. – 26.06.2025 4 Tage  
08.09. – 11.09.2025 4 Tage  

Präsenz-Training - Englisch

Dauer
4 Tage  

C++ Schulung für Fortgeschrittene: Weiterführende Programmiertechniken für C++ Entwickler - Live-Online-Training

Inhalt

Themeneinleitung

  • Historie zu C++
  • Prinzipielle Compiler-Funktionalität
  • Praxistipps: Wertvolle Links im Internet

Kurze Zusammenfassung der C++ Grundlagen

  • Variablen-Kategorien, Typen, Alignment
  • Klassen und Objekte
  • Konstruktor-Arten und Destruktor
  • Operatoren mit Überladung
  • Funktionszeiger in Klassen
  • Strings und Streams
  • Klassenrelationen: Assoziation, Selbst-Assoziation, Aggregation, Komposition, Vererbung, Mehrfachvererbung und Alternativen
  • Interface-Konzept mit rein virtuellen Funktionen
  • Neue Features der aktuellen Standards
  • Übung: Sie verstehen die vorgegebene SW-Architektur und lernen dabei das Builder-Pattern kennen, implementieren Klassen, Komposition und Vererbung und testen diese automatisiert nach dem TDD-Vorgehen (Test Driven Development).
  • Dabei berücksichtigen Sie Qualitätsaspekte wie objektorientierte Programmierung, Modularisierung, Wiederverwendbarkeit und Erweiterbarkeit

Exceptions

  • Erläuterung und Programmierung Exception Handling
  • Exception-Klassen und -Hierarchien
  • Benutzer-Exceptions
  • C++ Standard-Exceptions
  • Praxistipps: Konzepte, Richtlinien
  • Übung: Sie erweitern die Übungsapplikation um flexible
  • Ausnahmebehandlung mit Exceptions

New Style Casts

  • Static, dynamic, const und reinterpret Cast
  • Die richtige Wahl beim Einsatz
  • Bezug zu RTTI und Exception Handling

Runtime Type Information (RTTI)

  • Erläuterung und Programmierung von RTTI
  • Klasse type_info
  • Verwendungsmöglichkeiten und Konsequenzen beim Einsatz

Lamda-Funktionen

  • Syntax und Anwendung
  • Closures
  • std::function
  • Binden von Parametern

Speichermanagement

  • Speichersegmente (BSS Block Started by Symbol, Heap, Stack)
  • Vergleich und Bewertung der Datensegmente
  • Dynamisches Speichermanagement mit new und delete
  • Überladen (lokal und global) von new und delete
  • Algorithmen
  • Virtueller Destruktor
  • Placement new
  • Bezug zu Exception Handling
  • Smart Pointer: unique_ptr, shared_ptr, weak_ptr
  • Casten von Smart-Pointern
  • Praxistipps: Risiken erkennen und Stolpersteine vermeiden

Template-Funktionen und Template-Klassen

  • Prinzipielle Funktionsweise
  • Template-Funktionen, Template-Klassen und deren Anwendung
  • Beispiele für Template-Klassen
  • Vererbung und Interfaces mit Template-Klassen
  • Container/Algorithmen im STL-Stil
  • Laufzeit- vs. Compilezeit-Polymorphismus
  • Type-Traits
  • Perfect Forwarding mit Templates
  • Variadic Template-Funktionen und Template-Klassen
  • Alias-Templates
  • Praxisbeispiele für Template-Klassen
  • Übung: Sie wenden das Observer-Pattern im Design der Applikation an und implementieren es basierend auf einer containerartigen eigenen Template-Klasse

STL Standard Template Library

  • Container, Container-Adapter
  • Iteratoren
  • Algorithmen, Funktionsobjekte
  • Speicher-Allocator-Klasse
  • Praxistipp: Übersicht über alle STL-Containerelemente und deren Zusammenhänge
  • Übung: Sie wenden das Observer-Pattern im Design der Applikation an und implementieren es basierend auf einer STL-Container-Klasse

Multithreading und Atomic-Datentypen

  • Multithreading-Grundkonzepte
  • Threads, Mutex, Condition Variable, Future
  • Anwendung der Mechanismen
  • Übung: Sie adaptieren die Applikation an einen Timer und steuern sie über einen Thread. Dabei nutzen Sie mit ihren Vorteilen eine zusätzliche Betriebssystem-Abstraktion mit Wrapper-Klassen.

Typische Fallstricke und verbreitete Idiome (PIMPL, RAII, NVI, ...)

  • RAII (Resource Acquisition Is Initialization), Ressourcen-Wrapper
  • NVI (Non-virtual Interfaces)
  • PIMPL (Pointer to Implementation)
  • Handling Self-Assignment in Assignment Operator
  • Praxistipps zu weiteren C++ Idiomen

Übungen im C++ Kurs für Fortgeschrittene

  • Für die Implementierung der durchgängigen Übung (Uhrenapplikation) verwenden Sie das Microsoft Visual Studio.

MicroConsult PLUS:

  • Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.