Sie haben Fragen an uns? +49 711 - 489 369 00

Die Vorteile unserer Live-Online-Schulungen nutzen

Alle unsere Kurse bieten wir auch als Online-Schulung (interaktives virtuelles Live-Training) an. Digitale Liveschulungen – die fast so ablaufen, als wären Sie vor Ort. Mit Online Schulungen im Virtual Classroom erweitern Sie Ihr Wissen auf schnelle und unkomplizierte Art, ohne das Haus verlassen zu müssen. Sie sparen Reisekosten und Zeit!

  • CSB Schulungen und Trainings für C++

Embedded C++ - Grundkurs

Dauer: 5 Tage

  • Kursbeschreibung

    In diesem Embedded C++ Grundkurs werden grundlegende Sprachelemente und -konzepte von C++ (z.B. Datentypen, Anweisungen, objektorientierte Programmierung) unter dem Gesichtspunkt der besonderen Anforderungen an embedded Systeme vorgestellt und mit C-Alternativen verglichen. Ein Schwerpunkt liegt auf den neuen Sprachelementen von C++ 11, C++ 14 und C++ 17, die für embedded Systeme viele Vorteile haben. Zusammen mit den Sprachelementen werden auch die AUTOSAR C++14 und MISRA Regeln für sicherheitsrelevante Systeme vorgestellt.

    Embedded Programme sind oft durch besondere Anforderungen gekennzeichnet. Sie haben oft nur wenig Speicher, zur Vermeidung einer Speicherfragmentierung darf kein Heap verwendet werden, sie müssen schnell und zuverlässig sein, usw. Diese Anforderungen werden oft in Regeln zusammengefasst, wie z.B. den aus der Automobilindustrie stammenden MISRA Rules. Die für C++ zulässigen Sprachelemente werden auch als embedded C++ bezeichnet.

    Traditionellerweise werden embedded Programme oft in C geschrieben. Mit der Weiterentwicklung der Compiler haben die meisten Sprachelemente von C++ heute in Bezug auf Codegröße und Geschwindigkeit keine Nachteile mehr gegenüber C. Durch die neuen C++-Standards (C++ 11, C++ 14 und C++ 17) wurden neue Sprachelemente in C++ aufgenommen, die zu schnellerem und kleinerem Code führen als die C-Alternativen.

    Eines der wichtigsten Argumente für C++ ist aber, dass embedded Programme immer komplexer und größer werden. Diese Komplexität ist mit den Mitteln von C oft nur noch schwer zu bewältigen. Hier bietet C++ enorme Vorteile, die Entwicklungskosten sparen und zur Zuverlässigkeit der Anwendungen beitragen.

    Falls sich im Lauf des Seminars  zeigt, dass Grundlagen bei den Teilnehmern fehlen oder weitere Themen gewünscht werden, kann die Agenda auch noch während des Seminars an die Wünsche der Teilnehmer angepasst werden.

  • Kursinhalte
    1. Embedded Systeme
    • Einsatzbereiche und Besonderheiten
    • Spezielle Anforderungen bei Embedded Anwendungen
    2. C und C++ im Vergleich
    3. Elementare Datentypen und Anweisungen
    3.1 Ganzzahl-Datentypen
    • Ganzzahl-Typen mit fester Breite
    • Trennzeichen für Zahlenliterale, binäre Literale
    • Typ-Ableitungen: Implizite Typzuweisungen mit auto
    • Implizite Konvertierungen und sichere Konvertierungen mit Initialisierungslisten
    • std::byte
    3.2 Kontrollstrukturen und Funktionen
    • Bedingte Anweisungen und Schleifen
    • Initialisierungen in for if/switch
    • Funktionen
    • Bedingte Kompilation mit if constexpr
    • Wert- und Referenzparameter
    • Bibliotheken und namespaces verwenden
    • Default Argumente
    3.3 Gleitkomma-Datentypen
    3.4 Konstanten
    • Laufzeitkonstanten mit const
    • Compilezeit Konstanten mit constexpr
    • constexpr Funktionen
    • static_assert und unit tests zur Compilezeit
    3.5 Synonyme für Datentypen mit typedef und using
    3.6 Überladene Funktionen
    • Überladene Operatoren mit globalen Operatorfunktionen
    • Benutzerdefinierte Literale
    3.7 Reihenfolge der Auswertung in Ausdrücken seit C++17
    3.8 Aufzählungstypen
    • Schwach typisierte Aufzählungstypen (C/C++03)
    • enum Konstanten und Konversionen
    • Stark typisierte Aufzählungstypen (C++11)
    3.9 Attribute
    3.10 Der Visual Studio C++ Core Guidelines Checker
    3.11 Module (C++20)
    • Die Standardbibliothek als Modul verwenden
    • Module definieren
    4. String-Klassen: string, wstring etc.
    • Elementfunktionen der string Klasse
    • Raw string Literale
    • C++11 String-Konversionsfunktionen to_string, stoi usw.
    • C++17 String-Konversionsfunktionen: to_chars und from_chars
    • string_view – Strings zum Anschauen
    5. Arrays und Container
    • Arrays im Stil von C
    • C++ Arrays: std::array
    • Dynamische Arrays des Typs std::vector
    • Die Initialisierung von Arrays bei ihrer Definition
    • Vorteile von std::array und std::vector gegenüber Arrays im Stil von C
    6. Pointer und Smart Pointer
    1. AUTOSAR 6.18.5: Dynamische Speicherverwaltung
    2. Das nullptr Literal
    3. Pointer Konversionen
    4. C++11 Smart Pointer: shared_ptr, unique_ptr und weak_ptr
    5. Gemeinsamkeiten von unique_ptr und shared_ptr
    6. unique_ptr
    7. shared_ptr
    8. Deleter und smart pointer für Arrays
    7. Objektorientierte Programmierung
    7.1 Klassen, Datenelemente und Elementfunktionen
    • Datenkapselung: Die Zugriffsrechte private und public
    • Konstruktoren und Destruktoren
    • Initialisierungslisten für Argumente und Rückgabewerte
    • Initialisierungslisten als Parameters
    • Der Standardkonstruktor
    • Elementinitialisierer
    • Überladene Operatoren mit Elementfunktionen
    • Der Kopierkonstruktor und der Zuweisungsoperator
    • Explizit deleted und defaulted Funktionen mit =delete und =default
    • Konvertierende und explizite Konstruktoren
    • Static Klassenelemente
    • inline Variablen, vor allem static inline Datenelemente
    • Konstante Objekte und Elementfunktionen
    7.2 Vererbung und Komposition
    • Konversionen zwischen public abgeleiteten Klassen
    • Mehrfachvererbung
    • Virtuelle Funktionen, späte Bindung und Polymorphie
    • Virtuelle Funktionen mit override in C++11
    • Rein virtuelle Funktionen und abstrakte Basisklassen
    • Interfaces und Mehrfachvererbung
    7.3 R-Wert Referenzen und Move Semantik
  • Voraussetzungen

    Gute C Kenntnisse

Seminarzeiten

8 Unterrichtseinheiten á 45 Minuten
jeweils von 09.30 Uhr - 17.00 Uhr oder nach Absprache

Warum wir?
Sieben Argumente, warum ein CSB-Training Ihnen und Ihrem Unternehmen wesentliche Vorteile bringt:
 
CSB Button Individuell abgestimmte, maßgeschneiderte Schulungsinhalte
CSB Button Hochqualifizierte, projekterfahrene TrainerInnen
CSB Button Betreuung auch nach der Schulung
CSB Button Schulungen bundesweit in Ihrem Hause oder als Online-Schulung
CSB Button Attraktive Staffelpreise für Inhouse-Schulungen
CSB Button Mehr als 25 Jahre Schulungserfahrung
CSB Button Die Zufriedenheit unserer Kunden ist unser stärkstes Argument
Mobiler Schulungsraum (auch für Hybrid-Schulungen)

Sie haben einen Raum zur Verfügung, aber es fehlt das notwendige Equipment oder ist nur teilweise vorhanden? Kein Problem - dafür gibt es den mobilen Seminarraum mit vorinstallierten, leistungsfähigen Notebooks. Weitere Infos finden Sie hier

Fördermöglichkeiten

Informationen zu staatlichen Förderprogrammen für Ihre Schulung: Fördermittel

Zurück
Copyright 2024 | CSB - Ges. f. Coaching, Schulung & Beratung mbH. Alle Rechte vorbehalten.
Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Datenschutz
Akzeptiert