C++ für Embedded Systeme


Zielgruppe:

Entwickler mit C-Kenntnissen, die Anwendungen objektorientiert in C++ für Embedded Systeme erstellen wollen.

Vorkenntnisse:

Gute Programmiererfahrung in C.

Dauer:

5 Tage

Beschreibung:

In diesem Kurs lernen Sie die Programmiersprache C++ und die Konzepte der objektorientierten Programmierung, spezialisiert auf den Einsatz in Embedded Systemen, kennen. Besonderes Gewicht wird dabei auf die Bewertung der einzelnen Mechanismen in Bezug auf Speicherplatz- und Laufzeitbedarf gelegt. Als weitere Besonderheit behandelt dieser Kurs auch den objektorientierten Umgang mit Hardwarebausteinen. Die dazu gehörenden Übungen werden auf einer ARM-basierenden Target-Hardware durchgeführt.
Der Kursinhalt basiert prinzipiell auf dem Sprachstandard C++98, der momentan am weitesten verbreitetet ist. Die mit C++11 markierten Elemente sind nur bei Einsatz eines Compilers verwendbar, der diesen neueren Sprachstandard unterstützt. Aus diesem Grund können diese Inhalte optional gebucht werden. Die neuen Spracheigenschaften der C++11/C++14/C++17-Standards werden in dem Kurs "Modernes C++" behandelt.


Inhalt:

Nicht-Objektorientierte Sprachmittel und I/O

  • Datentyp bool
  • Referenzen
  • Funktionsüberladung
  • Vorbelegungsparameter
  • Dynamische Speicherverwaltung
  • Überladung von Operatoren
  • Ein-/Ausgabe (cin/cout)
  • Bereichsbasierte for-Schleife (C++11)
  • Scoped Enumerations (C++11)
  • nullptr (C++11)
  • Automatische Typableitung mit auto (C++11)
  • constexpr (C++11)
  • Alias-Typdefinition mit using (C++11)

Von der Struktur zur Klasse

  • Datenelemente, Attribute
  • Elementfunktionen, Methoden
  • Statische/nicht-statische Elemente
  • this-Pointer
  • Zugriffsrechte public und private
  • Klasse

Konstruktoren und Destruktoren

  • Standard- und Kopierkonstruktor
  • Bei globalen und statischen Objekten und Arrays
  • Bei Objekten, die Objekte enthalten
  • Vereinheitlichte Initialisierung (C++11)
  • Direkte Initialisierung von Datenelementen (C++11)
  • Konstruktor-Delegatioin (C++11)

Operatoren als Klassenelemente

  • Zuweisungsoperator
  • Auswahloperator
  • Typumwandlungsoperator

Vererbung und Aggregation

  • Basis- und abgeleitete Klassen
  • Vorteile der Vererbung gegenüber der Aggregation
  • Modellierung der Basisklassenfunktionalität
  • Auswirkungen auf Konstruktion und Destruktion
  • Zugriffsrecht protected
  • Ableitung mit Einschränkung der Zugriffsrechte
  • Konstruktorvererbung (C++11)

Virtuelle Funktionen und Polymorphie

  • Statische und dynamische Bindung
  • Virtuelle Funktionen
  • Abstrakte Funktionen und abstrakte Klassen
  • Interfaces
  • override und final (C++11)

Bewertung der Sprachmittel

  • Objektmodell
  • Erzeugung und Zerstörung von Objekten
  • Temporäre Objekte
  • Vererbung
  • Virtuelle Funktionen
  • Dynamische Speicherverwaltung

Objektorientierte Abbildung von Hardwarebausteinen

  • Traditionelle Lösungen
  • Lösung mithilfe einer Struktur
  • Hardwarebaustein als Objekt einer Klasse
  • Interruptbehandlung

Praktische Übungen

 

Der Kursinhalt entspricht nicht ganz dem, was Sie suchen?