Schulung C++ Basiswissen (Grundlagen der Programmiersprache C++)

Beschreibung/Inhalt

Zielgruppe: Softwareentwickler für Unix, Linux, Mac und/oder Windows
Niveau: Einstieg
Typische Dauer: 3 Tage (empfohlene Dauer kann abweichen - je nach Vorkenntnissen und Wünschen)
Vorkenntnisse: Grundlegende Programmierkenntnisse (C-Kenntnisse wären optimal)
Begleitliteratur: C++ kurz & gut von Kyle Loudon & Rainer Grimm
Ziel: Grundverständnis der C++-Kernsprache und wichtiger Teile der APIs
Vorgehensweise: Theorie und Praxis mit anschaulichen Übungen
Standard: aktueller C++-Standard bzw. Standard Ihrer Wahl
Entwicklungsumgebung: Visual C++ bzw. CLion oder andere Ihrer Wahl

# Einführung in C++

  • Geschichte von C++
  • Einsatzgebiete von C++
  • C++-ISO-Standard (Entwicklung der Standards)
  • Entwicklungsumgebungen/Editoren (zur Wahl u.a: Emacs, Eclipse, CLion, Visual Studio, Visual Studio Code)
  • Compiler
  • Vom Quellcode über Object Files zum Exectuable mit Build-Werkzeugen wie make, nmake, cmake


  • # Optional: C-Grundlagen
  • Programmstruktur
  • Datentypen und Variablen (Basis-Datentypen und Arrays)
  • Operatoren
  • Typ-Wandlungen (=Casts)
  • Control-Flow Konstrukte (Bedingungen und Schleifen)
  • Funktionen
  • Pointer und dynamisches Memory
  • Enum
  • Struct und Union
  • Preprocessor


  • # Klassen und Objekte
  • Member-Variablen
  • Member-Funktionen (virtual und non-virtual)
  • Sichtbarkeiten
  • Konstruktoren / Destruktoren
  • Operator-Overloading
  • Ableitung (einfach, mehrfach, virtual)


  • # Rvalues

    # Exceptions
  • Das Prinzip von Exceptions
  • Sauberer Umgang mit Exceptions
  • noexcept
  • "catch-all" und std::exception_ptr
  • Stolpersteine bei Exceptions


  • # Arbeiten mit dynamischem Memory
  • Verschiedene Arten von new und delete
  • Overloading von new und delete
  • Smart-Pointer (std::unique_ptr, std::shared_ptr, std::weak_ptr)


  • # Grundlagen von Templates
  • Funktionstemplates
  • Klassentemplates
  • Variadic Templates
  • Type-Traits
  • Template-Spezialisierungen (partiell und vollständig)


  • # std::function und Lambdas

    # Type-Deduction mit auto und decltype

    # Multithreading
  • Das moderne C++ Memory-Model
  • std::atomic
  • Promises und Futures
  • std::async
  • Threads, join und detach
  • Synchronisierung mit verschiedenen Arten von Mutexes
  • Wait-Notify mit Condition-Variables
  • Thread-lokale Variablen


  • # optional: ausgewählte Container und Konzepte
  • std::array
  • std::vector
  • std::deque
  • std::map
  • Das Konzept von Iteratoren und darauf aufgebauter Algorithmen

  • Auf Wunsch kann die Behandlung dieser Standard-Library-Aspekte entsprechend ausgeweitet werden

    Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil