Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
Dieses Kapitel behandelt die folgenden Themen:
Entstehung und Entwicklung der Programmiersprache C++
Objektorientierte Programmierung - erste Grundlagen
Wie schreibe ich ein Programm und bringe es zum Laufen?
Einfache Datentypen und Operationen
Ablauf innerhalb eines Programms steuern
Erste Definition eigener Datentypen
Standarddatentypen vector und string
Einfache Ein- und Ausgabe
Guter Programmierstil
C++ wurde etwa ab 1980 von Bjarne Stroustrup als die Programmiersprache »C with classes« (englisch C mit Klassen), die Objektorientierung stark unterstützt, auf der Basis der Programmiersprache C entwickelt. Später wurde die neue Sprache in C++ umbenannt. ist ein Operator der Programmiersprache C, der den Wert einer Größe um 1 erhöht. Insofern spiegelt der Name die Eigenschaft »Nachfolger von C«. 1998 wurde C++ erstmals von der ISO (International Organization for Standardization) und der IEC (International Electrotechnical Commission) standardisiert. Diesem Standard haben sich nationale Standardisierungsgremien wie ANSI (USA) und DIN (Deutschland) angeschlossen. Die Anforderungen an C++ sind gewachsen, auch zeigte sich, dass manches fehlte und anderes überflüssig oder fehlerhaft war. Das C++-Standardkomitee hat kontinuierlich an der Verbesserung von C++ gearbeitet. Seit 2011 werden im Abstand von drei Jahren neue Versionen des Standards herausgegeben. Die Kurznamen sind entsprechend den Jahreszahlen C++11, C++14, C++17, C++20 und C++23. C++23 wurde von der zuständigen ISO/IEC-Arbeitsgruppe JTC1/SC22/WG21 verabschiedet und bei der ISO zur Veröffentlichung eingereicht.
Es gibt viele verschiedene Arten der Programmierung. C++ unterstützt im Wesentlichen die folgenden:
Dabei werden die im Programmcode festgelegten Schritte der Reihe nach ausgeführt. Es geht also darum, einem Rechner mitzuteilen, was er tun soll und wie es zu tun ist. Ein Programm ist ein in einer Programmiersprache formulierter Algorithmus oder anders ausgedrückt eine Folge von Anweisungen, die der Reihe nach auszuführen sind, ähnlich einem Kochrezept. Der Algorithmus wird in einer besonderen Sprache, die der Rechner »versteht«, geschrieben. Der Schwerpunkt dieser Betrachtungsweise liegt auf den einzelnen Schritten oder Anweisungen an den Rechner, die zur Lösung einer Aufgabe abzuarbeiten sind. Mit sogenannten Kontrollstrukturen wird der Programmablauf gesteuert. So können Teile wiederholt ausgeführt oder übersprungen werden.
Bei der imperativen Programmierung wird ein Aspekt eher stiefmütterlich behandelt: Der Rechner muss »wissen«, womit er etwas tun soll. Zum Beispiel soll er
eine bestimmte Summe Geld von einem Konto auf ein anderes transferieren;
eine Ampelanlage steuern;
ein Rechteck auf dem Bildschirm zeichnen.
Häufig, wie in den ersten beiden Fällen, werden Objekte der realen Welt (Konten, Ampelanlage ...) simuliert, das heißt im Rechner abgebildet. Die abgebildeten Objekte haben eine Identität. Das Was und das Womit gehören stets zusammen. Beide sind also Eigenschaften eines Objekts und sollen daher nicht getrennt werden. Ein Konto kann schließlich nicht auf Gelb geschaltet werden und eine Überweisung an eine Ampel ist nicht vorstellbar. Ein objektorientiertes Programm kann man sich als Abbildung von Objekten der realen Welt in Software vorstellen. Die Abbildungen werden in C++ selbst wieder Objekte genannt. Klassen sind Beschreibungen von Objekten.
Die generische Programmierung ermöglicht es, Klassen und Algorithmen für verschiedene Datentypen mit nur einem Schema zu modellieren. Das gilt für die imperative Programmierung ebenso wie für die objektorientierte Programmierung. Andere Arten der Programmierung sind für C++ von geringerer Bedeutung.
Um Programme schreiben und ausführen zu können, brauchen Sie nicht viel: einen Computer mit einem Editor und einem C++-Compiler.
Ein Editor ist ein Programm, mit dem man Texte schreiben kann. Dabei darf ein Text keine versteckten Sonderzeichen enthalten, weswegen LibreOffice oder Word nicht geeignet sind. Es gibt viele passende Texteditoren. In diesem Buch beschränke ich mich auf Geany1, weil es ihn für Windows, Linux und macOS gibt und weil er einfach zu bedienen ist. Gleichzeitig ist er eine einfache IDE (Integrated Development Environment, dt. integrierte Entwicklungsumgebung). In Abschnitt 1.5 finden Sie mehr dazu.
Der Compiler ist ein Programm, das Ihren Programmtext in eine für den Computer verarbeitbare Form übersetzen kann. Von Menschen geschriebener Programmtext kann vom Computer nicht so verstanden werden, wie wir einen Text verstehen. Das vom Compiler erzeugte Ergebnis der Übersetzung kann der Computer aber ausführen. Das Erlernen einer Programmiersprache ohne eigenes praktisches Ausprobieren ist kaum sinnvoll. Nutzen Sie daher die Dienste des Compilers möglichst bald anhand der Beispiele. Wie, zeigt Ihnen der Abschnitt direkt nach der Vorstellung des ersten Programms.
Die am meisten verbreiteten Compiler sind der GNU C++-Compiler [GCC] g++, der zu Microsofts Visual Studio gehörende cl und clang++ von LLVM2. Um C++ zu lernen, ist es letztlich egal, welchen Compiler Sie nehmen. In diesem Buch liegt der Schwerpunkt auf dem g++-Compiler, weil er Open-Source und sehr gut bekannt ist.
Installationshinweise finden Sie auf der Internetseite http://cppbuch.de/downloads.html. Im Folgenden wird davon ausgegangen, dass Sie die Installation wie dort beschrieben vorgenommen haben.
Bei den meisten Linux-Systemen ist der GNU C++-Compiler enthalten. Wenn nicht, finden Sie Hinweise zur Installation unter http://www.cppbuch.de/swinstallation.html.
Das klassische erste Programm ist ein Mini-Programm, das einfach nur »Hello World!« ausgibt. Das Listing 1.1 zeigt den Programmcode.
Listing 1.1: Hello World-Programm (cppbuch/k1/hello.cpp)
#include <iostream> int main() { std::cout << "Hello World!\n"; }
Die Entwicklung eines einfachen Programms lernen Sie hier an einer ebenfalls einfachen Aufgabe kennen: Es sollen zwei Zahlen addiert werden. Dabei wird Ihnen zunächst das Programm vorgestellt und gleich danach erfahren Sie, wie Sie es eingeben und zum Laufen bringen können. Der erste Schritt besteht in der Formulierung der Aufgabe. Sie lautet: »Lies zwei Zahlen a und b von der Tastatur ein. Berechne die Summe beider Zahlen und zeige das Ergebnis auf dem Bildschirm an.« Die Aufgabe ist so einfach, wie sie sich anhört! Im zweiten Schritt wird die Aufgabe in die Teilaufgaben »Eingabe«, »Berechnung« und »Ausgabe« zerlegt:
Listing 1.2: Programmentwurf
int main() // Noch tut dieses Programm nichts! { // Lies zwei Zahlen ein /* Berechne die Summe beider Zahlen */ // Zeige das Ergebnis auf dem Bildschirm an }
Sie sehen einen einfachen Entwurf, der gleichzeitig ein C++-Programm ist. Es tut allerdings noch nichts. Es bedeuten:
ganze Zahl zur Rückgabe
Name der Funktion, mit der jedes Programm beginnt
Innerhalb dieser Klammern können der Funktion Informationen mitgegeben werden.
Block
Kommentar, der über mehrere Zeilen gehen kann
Kommentar bis Zeilenende
Ein durch und begrenzter Block enthält die Anweisungen an den Rechner. Der Compiler übersetzt den Programmtext in eine rechnerverständliche Form. Im Block...
Dateiformat: ePUBKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.
Dateiformat: PDFKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.