Embedded C++ für Umsteiger


Zielgruppe:

Softwareentwickler/innen mit Programmiererfahrung, die sich in die Eigenschaften der Programmiersprache C++ - mit Fokus auf deren möglichst effiziente Anwendung in ressourcelimitierten Embedded-Systemen - einarbeiten müssen.

Vorkenntnisse:

Kenntnis mindestens einer objektorientierten Programmiersprache, wie z.B. Java oder C#.

Dauer:

3 Tage (erweiterbar um praktische Übungen)

Beschreibung:

Dieser Kompaktkurs zeigt, was nötig ist, um Applikationen für Embedded-Systeme effizient in der Programmiersprache C++ entwickeln zu können. Er eignet sich ideal für Softwareentwickler/innen, die das objektorientierte Programmiermodell im Umgang mit anderen Programmiersprachen bereits kennengelernt, aber noch keine Erfahrung mit C++ und den besonderen Anforderungen der Embedded-Programmierung gemacht haben. Um den Kursumfang möglichst kompakt halten zu können, werden die Spracherweiterungen der Sprachstandards ab C++11 hier nicht berücksichtigt, sondern in dem Aufbaukurs "Modernes C++" behandelt.


Inhalt:

C-GRUNDLAGEN

  • Speicherarten
  • Datentypen
  • Ausdrücke und Operatoren
  • Implizite und explizite Typumwandlung
  • Makros
  • Kontrollstrukturen
  • Pointer
  • Aufzählungsdatentypen
  • Arrays
  • Strings
  • Strukturen
  • Funktionen

Nicht-Objektorientierte Spracheigenschaften

  • Datentyp bool
  • Referenzen
  • Funktionsüberladung
  • Vorbelegungsparameter
  • Dynamische Speicherverwaltung
  • Operatorüberladung
  • Ein-/Ausgabe (cin/cout)
  • Cast-Operatoren

Klassen und Objekte

  • Datenelemente, Attribute
  • Elementfunktionen, Methoden
  • Inlining
  • Statische/nicht-statische Elemente
  • this-Pointer
  • Zugriffsrechte public und private
  • Konstruktoren und Destruktoren
  • Methodenbasierte Operatorüberladung
  • Konstante Methoden

Vererbung

  • Basisklassen und abgeleitete Klassen
  • Auswirkungen auf Konstruktion und Destruktion
  • Zugriffsrecht protected
  • Ableitung mit Einschränkung der Zugriffsrechte

Virtuelle Funktionen und Polymorphie

  • Statische und dynamische Bindung
  • Virtuelle Funktionstabelle
  • Abstrakte Funktionen und abstrakte Klassen
  • Interfaces (Interfaces)

Templates

  • Template-Funktionen
  • Template-Parameter
  • Spezialisierung
  • Klassen-Templates
  • Templates und Vererbung
  • Explizite Template-Instanziierung
  • Statische Polymorphie
  • Meta-Programmierung

Objektorientierter Zugriff auf hardwarebausteine

  • Memory-Mapped-/Port-Mapped-I/O
  • Traditionelle Registerzugriffsmethoden
  • Objektorientierter Zugriff auf Hardwareregister
  • Interruptbehandlung

Kostenanalyse der Sprachelemente

  • Objektmodell
  • Temporäre Objekte
  • Vererbung
  • Virtuelle Funktionen
  • Dynamische Speicherverwaltung

Nicht genau was Sie suchen?

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.