Hallo und herzlich willkommen. Nachdem ich mir als meine primäre Programmiersprache C++ ausgewählt habe, möchte ich gemeinsam mit dir Programmieren lernen. Und genau mit diesem Thema befasst sich die Beitragsserie C++: Die Basics.

Bevor wir uns auf alle möglichen Datentypen, typischen Konzepte, Methoden, den Programmablauf zu gestalten und den generellen Aufbau von C++ Programmen stürzen, gibt es zur Einstimmung zuerst einen kleinen Überblick.

Eine kurze Einführung in C++

C++ wurde 1979 von Bjarne Stroustroup in den Bell Laboratories entwickelt und sollte die Funktionen eines Nachfolgers für die Programmiersprache C erfüllen. Die Bell Labs haben ihren Ursprung in den Bell Systems von Alexander Graham Bell. Sie sind die ehemalige Forschungsabteilung der Telefongesellschaft AT&T und gehören heute zu der Forschungs- und Entwicklungsabteilung von Nokia.

Im Gegensatz zu C wurde C++ jedoch als objektorientierte Sprache konzipiert. Dies ist für dich am deutlichsten an den implementierten Konzepten wie Vererbung, Abstraktion, Polymorphismus und Verkapselung zu erkennen.

In C++ werden Objekte in Klassen strukturiert, die klasseneigene Daten und Methoden enthalten. Diese Klassenmethoden arbeiten mit den Klassendaten. Aus dieser Organisation ergibt sich der Effekt, dass die Modellierung der Daten und das Ausführen von Aktionen innerhalb der Klasse bleiben.

Viele beliebte C++-Compiler unterstützen weiterhin auch die C Programmierung. Aber keine Sorge, zum Erlernen von C++ werden von dir keine Kenntnisse oder Erfahrungen in der C-Programmierung vorausgesetzt. Um eine objektorientierte Programmiersprache wie C++ zu lernen, musst du vorher keine prozedurale Sprache wie C beherrschen.

Und was sind die Vorteile?

C++ gilt als eine intermediate-level Programmiersprache. Sie liegt quasi zwischen einer sehr hardwarenahen low-level Sprache und einer deutlich abstrahierenden high-level Sprache. Und was bedeutet das? Nun, C++ ermöglicht dir sowohl die Programmierung von Anwendungen auf hoher Ebene als auch die Programmierung von Bibliotheken auf niedriger Ebene, nahe der Hardware.

Für viele Programmierer bietet C++ den optimalen Mix aus einer Hochsprache, die es ermöglicht, komplexe Anwendungen zu entwickeln, während es gleichzeitig Flexibilität bietet, damit der Entwickler die beste Leistung durch genaue Kontrolle des Ressourcenverbrauchs und der Verfügbarkeit erzielen kann.

Das ist doch Standard

Aufgrund seiner Popularität führte die jahrelange Entwicklung dazu, dass C++ auf vielen verschiedenen Plattformen akzeptiert und angenommen wurde, wobei die meisten ihre eigenen C++-Compiler verwendeten. Diese Entwicklung führte zu compilerspezifischen Abweichungen und damit zu Interoperabilitätsproblemen und Portierungsproblemen. Daher ergab sich die Notwendigkeit, die Sprache zu standardisieren und den Compilerherstellern eine Standardspezifikation für die Arbeit mit der Sprache zur Verfügung zu stellen.

1998 wurde die erste Fassung des C++-Standards vom ISO-Komitee in ISO/IEC 14882:1998 ratifiziert. Seitdem hat die Norm ehrgeizige Änderungen erfahren, die die Benutzerfreundlichkeit der Sprache verbessert und die Unterstützung der Standardbibliothek erweitert haben.

Diese Version hielt sich ziemlich lange. Erst 2011 kam eine überarbeitete Fassung, die ein riesiges Paket an neuen Funktionen und Anpassungen mit sich brachte. Unter anderem hat sich eine informelle Versionierungsform mit C++11 eingeführt. Die nächsten Aktualisierungen C++14 und C++17 folgten in kürzeren Abständen.

Auf isocpp.org kannst du dir den aktuellen Status des Standards und wie er sich weiterentwickeln soll ansehen.

Du solltest beachten, dass der aktuelle Standard möglicherweise nicht sofort oder vollständig von allen gängigen Compilern unterstützt wird. Hast du den Anspruch, immer die neuesten Ergänzungen zum Standard zu kennen und möchtest diese sofort einsetzen, ist das sehr löblich. Doch bedenke, dass die Ergänzungen keine Voraussetzung für das Schreiben guter, funktionierender C++-Anwendungen sind und dir anfangs sogar Unannehmlichkeiten bereiten können.

„Viel zu lernen, du noch hast.“- Meister Yoda

Ich kann mir gut vorstellen, dass dir beim Lesen einige Begriffe etwas Unsicherheit verschaffen. Das ist überhaupt nicht schlimm, sondern sogar gut. Denn dann bist du ehrlich zu dir selbst und wir können unsere Unsicherheiten gemeinsam in Wissen verwandeln.

In dieser Beitragsserie werden wir uns zusätzlich zu den Grundlagen der Programmiersprache C++ auch allgemeingültige Elemente, die für die Entwicklung und die Erstellung von Computerprogrammen notwendig sind, anschauen.

Und das Schöne ist, dass dir vieles des Gelernten auch in anderen Situationen, mit anderen Tools oder anderer Programmiersprache helfen wird. Du erweiterst dein generelles Verständnis für Computerwissenschaften und findest dich immer schneller in unterschiedlichsten Problemstellungen zurecht.

Hat dir mein kurzer Überblick in C++ gefallen? Konnte ich deine Motivation und den Wunsch, C++ zu lernen, weitersteigern? Das wünsche ich mir natürlich und hoffe, du schaust bei der nächsten Episode wieder rein.

Ich wünsche dir maximalen Erfolg!