Twitch Youtube Youtube Vidme Facebook Google+ Twitter

Modern C++ (C++ 11)

C++11

Warum C++11?

Mit C++11 hat sich die Programmiersprache praktisch neu erfunden. Bjarne Stroustrup, der Erfinder von C++ selbst erwähnt in seinem Buch "( Die C++ Programmiersprache )", dass sich C++11 anfühlt wie eine neue Programmiersprache.

C++11 führt neue Sprachfeatures ein, die es erlauben, eleganten Code zu schreiben und mit modernen Sprachmitteln Software zu entwickeln.

In dieser Video-Reihe behandeln wir daher alle C++11 Themen, die mit dem C++11 Standard erschienen sind und gießen uns zusammen ein Fundament für die "moderne C++" Entwicklung.

C++11 ist keine "eigene/parallele" Version von C++, sondern IST C++. Ein Standard, der C++ modernisiert hat. Spätere Versionen wie C++14, C++17 usw. führen weitere Ergänzungen ein, bauen allerdings auf das C++11 auf, weswegen wir uns besonders mit der C++11 Welt beschäftigen und uns die Kenntnisse der modernen C++ Entwicklung aneignen.

Daher ist diese Video-Reihe als Ergänzung zur Tutorial-Reihe C++ von A bis Z (neu) und (alt) zu sehen und sollte auch für dich als C++-Anfänger NICHT ignoriert werden! :)


Videos:

  1. C++11 - Bereichsbasierte for-Schleife (range-based for loop)

    Materialien:

    • Keine


    Beschreibung:

    Hier sprechen wir über die in C++11 neu eingeführte for-Schleife "range-based loop". Sie erlaubt es, die in C++ bereits vorhandene for_each Schleife wesentlich eleganter und einfacher zu nutzen, wie wir sie in anderen Programmiersprachen wie Java und C Sharp gewohnt sind. Die Bereichsbasierte-For-Schleife bietet uns eine einheitliche Syntax, sowohl über alle STL-Container, als auch über C-Arrays zu iterieren.
  2. C++11 - Delegierende Konstruktoren

    Materialien:

    • Keine


    Beschreibung:

    In diesem Video zeige ich euch, wie wir die wiederholdenden Tätigkeiten der Initialisieriungen der Konstruktoren an lediglich einen Konstruktor delegieren. Delegieren bedeutet, wir drücken die Arbeit einfach jemand anderem auf. In diesem Fall kümmert sich nicht jeder Konstruktor um eine ordentliche Initialisierung, sondern ruft einen anderen Kosntruktor auf, der die Arbeit übernimmt.

    Wie das geht, zeige ich euch hier anhend eines kleinen Beispiels.
  3. C++11 - Member-Initialisierung

    Materialien:

    • Keine


    Beschreibung:

    In diesem Video zeige ich euch, wie man in C++11 Klasseneigenschaften direkt in der Klasse selbst initialisieren kann. Das Thema lautet hierbei Member-Initialisierung.

    Auch zeige ich euch kurz, was wir mit C++11 nicht machen können: static-Eigenschaften zu initialisieren, da static-Variablen keine MEMBER-Variabeln sind, sondern KLASSEN-Variablen!
  4. C++11 - auto

    Materialien:

    • Keine


    Beschreibung:

    In diesem Video zeige ich euch die Bedeutung des "auto"-Schlüsselworts. Ich zeige euch einige Beispiele, wo es Sinn machen könnte, auto zu verwenden.
  5. C++11 - array

    Materialien:

    • Keine


    Beschreibung:

    In diesem Video lernen wie das C++11 array kennen und ich zeige euch die kleinen Unterschiede zwischen das C Arrays und das C++ array (std::array).

    Wir sehen, wie wir mit den Iteratoren des std::array arbeiten können und erkennen, welchen Mehrwehrt das array hinsichtlich für die Benutzung von STL Bibliotheksfunktionen hat.
  6. C++11 - explicit

    Materialien:

    • Keine


    Beschreibung:

    Hier zeige ich euch, welche Mehrwert das Schlüsselwort explicit hat. Es handelt sich hierbei um einen Spezifizierer, der angibt, dass ein Konstruktor nur explizit aufzurufen ist und keine impliziten Aufrufe mehr erfolgen sollen.

    Der Compiler sucht nach passenden Konstruktoren und versucht Werte in Datentypen zu überführen. Gelingt es ihm durch implizites Casten, können dabei sehr unschöne Nebeneffekte entstehen. In einem Beispiel in diesem Video wird das deutlich.
  7. C++11 - Specifier: default, delete, final, override

    Materialien:

    • Keine


    Beschreibung:

    Hier gehe ich auf die Spezifizierer (Specifier) default, delete, final, override ein.

    Mit Einsatz dieser Schlüsselwörter können wir der Automatiserung von C++ in seiner Erstellung der Standardmethoden entgegenwirken, bei Vererbung wiederum für mehr Kontrolle sorgen.

    Welches Schlüsselwort in welchem Kontext was bewirkt, erkläre ich in diesem Video.