C++ Aufbaukurs mit gcc

Dieser Kurs vermittelt zusammen mit dem C++-Grundkurs einen umfasssenden Überblick über das moderne C++. Er unterscheidet sich von vielen anderen C++-Kursen dadurch, dass die neuen Sprachelemente von C++11/14/17 von Anfang an eingesetzt werden.

Er richtet sich an Software-Entwickler in Firmen, die C++ für den professionellen Einsatz lernen wollen. Der Kurs wird mit dem GCC C++ Compiler durchgeführt.

Inhalt

Die Inhalte können an die Wünsche der Teilnehmer angepasst werden.

In diesem Kurs werden Templates und die C++-Standardbibliothek (STL) vorgestellt. Dabei werden die Vorteile der STL-Klassen gegenüber den entsprechenden konventionellen Sprachelementen gezeigt (z.B. Stringklassen – nullterminierte Strings, Containerklassen – Arrays, Streamklassen – stdio-Funktionen). Außerdem wird gezeigt, wie die STL, ihre Container und ihre Algorithmen aufgebaut sind und wie man die STL um eigene Algorithmen erweitern kann.

Templates sind Vorlagen, aus denen der Compiler Klassen und Funktionen erzeugt. Die C++ Standardbibliothek ist weitgehend auf der Basis von Templates implementiert und wird deshalb auch als Standard Template Library (STL) bezeichnet. Sie enthält viele Algorithmen und Datenstrukturen, die eine einfache Lösung häufig auftretender Programmieraufgaben ermöglichen. Aufgrund ihrer speziellen Architektur ist sie vielseitiger, leistungsfähiger, sicherer und einfacher zu benutzen als viele andere Bibliotheken.

1. Namensbereiche

  • Die Definition und Verwendung von Namensbereichen

2. Exception-Handling

  • try, catch, throw
  • Exceptions in der Standardbibliothek
  • Die Freigabe von Ressourcen bei Exceptions (RAII)
  • noexcept

3. Container der Standardbibliothek

  • Sequenzielle Container, Iteratoren
  • Geordnete und nichtgeordnete assoziative Container
  • Klassen vector, list und deque

4. Funktoren und Lambda-Ausdrücke

  • Der Aufrufoperator
  • Prädikate und Vergleichsfunktionen
  • Lambda-Ausdrücke

5. Templates

  • Funktions-Templates und Spezialisierungen
  • Nicht-Typ-Parameter
  • Rekursive Funktions-Templates und Variadische Templates
  • Klassen-Templates
  • Type Traits
  • Typ-Inferenz

6. STL-Algorithmen und Lambda-Ausdrücke

  • Iteratoren: Umkehriteratoren, Einfügefunktionen und Einfügeiteratoren, Stream-Iteratoren
  • Lineares Suchen und Zählen
  • Suche nach Teilfolgen
  • Minimum und Maximum
  • Elemente vertauschen
  • Kopieren von Bereichen
  • Elemente transformieren, ersetzen und entfernen
  • Partitionen und Sortieren
  • Binäres Suchen in sortierten Bereichen
  • Mischen von sortierten Bereichen
  • Mengenoperationen auf sortierten Bereichen

7. Zeit- und Kalenderdaten mit chrono

  • Zeitpunkt und Zeitdauern
  • Uhren

8. Multithreading

  • Funktionen mit async und thread starten
  • Multithreading mit Lambda-Ausdrücken
  • Exceptions in Threads
  • future und promise
  • Kritische Abschnitte mit lock_guard usw. sperren
  • Bedingungsvariablen

9. Smart Pointer

  • unique_ptr, shared_ptr, weak_ptr
Organisatorisches:

Zielgruppe: Software-Entwickler, die mit Microsoft Visual Studio 2015 in C++ programmieren wollen.

Voraussetzungen: C++-Kenntnisse im Umfang des C++-Grundkurses.

Methodik: Vortrag mit vielen Übungen, in denen die Teilnehmer praxisnahe Programme entwickeln.

Manuskript: Ausführliche und detaillierte Schulungsunterlagen (ca. 200 Seiten)

Ort und Zeit: Dieses Seminar wird als Firmenseminar (inhouse) angeboten.

Dauer: 5 Tage

Dozent: Prof. Richard Kaiser führt seit vielen Jahren Seminare für Firmen durch, vor allem über Software-Entwicklung und die Programmiersprachen C#/C++/C. Zu seinen Kunden gehören renommierte Weltkonzerne und kleine und mittelständische Unternehmen. Er ist der Verfasser der Bücher „C++ mit Visual Studio 2017“ und „C++ mit Microsoft Visual C++ 2008“. Er war viele Jahre Mitglied im DIN Normierungsausschuss Informationstechnik NI-22.

Öffentliche Seminare von Prof. Kaiser finden Sie bei der Technischen Akademie Esslingen.

Beurteilungen der Seminare durch die Teilnehmer finden Sie hier.

Kontakt: Richard Kaiser, Schwärzlocher Straße 53, 72070 Tübingen, .img, .img@.img