Das erste C++ Programm (Hello World)

C++ ist eine kompilierte Programmiersprache, d.h. der vom Programmierer geschriebene Quelltext des Computerprogramms muss zunächst mittels eines Compilers in ein ausführbares Programm umgewandelt werden, damit es genutzt werden kann. Dieser Kompilierungsprozess und die Textausgabe des ausführbaren Hello World Programms im Linuxterminal wird im Folgenden vorgestellt.

Der Quelltext eines C++ Programms kann in einem normalen Editor geschrieben, betrachtet und editiert werden (hier wurde z.B. der Editor Kate unter Linux verwendet). Bei umfangreicheren Quelltexten ist es jedoch vorteilhafter und komfortabler einen Editor mit einer Integrierten Entwicklungsumgebung (IDE) zu nutzen (z.B. Geany, Eclipse oder Visual Studio Code).
Der Quelltext des wohl einfachsten C++ Programms (Hello World Programm) ist in der folgenden Box dargestellt und Sie können sich das kurze Programm durch Klicken auf den Link in der oberen linken Seite der Box herunterladen:

HelloWorld.cpp
#include <iostream>                        // Ein- und Ausgabebibliothek

int main(){                                // Hauptfunktion
    std::cout << "Hallo, du schöne Welt!"; // Ausgabe eines Textes
}

Das Programm gibt den Text "Hallo, du schöne Welt!" im Linux-Terminal Fenster aus. Wir beschreiben zunächst die einzelnen Ausdrücke und Befehle des Quelltextes:

C++ Programm Bedeutung
#include <iostream> Damit das Programm die Ausgabe eines Textes produzieren kann, müssen zunächst die Deklarationen der standardmäßigen E/A-Implementierungen aus der C++ Standardbibliothek <iostream> eingebunden werden.
// Ein- und Ausgabebibliothek Kommentare, die eine einzelne Zeile im Code beschreiben, werden mit // gekennzeichnet. Der Compiler ignoriert alles, was nach diesen beiden Zeichen geschrieben ist.
int main(){ ... } Jedes C++ Programm hat genau eine globale Hauptfunktion "main()" und das Programm startet, indem diese Funktion aufgerufen wird. Die Bezeichnung int vor der Hauptfunktion gibt den Rückgabewert der Funktion an das System an. int bezeichnet hier einen Zahlenwert aus der Menge der natürlichen Zahlen ℤ an (näheres siehe Datentypen, Variablen und Arithmetik). Wenn die Hauptfunktion keinen Wert zurückgibt (wie in unserem Fall), bekommt das System einen Wert, der den erfolgreichen Abschluss anzeigt.
std::cout << "Hallo, du schöne Welt!"; In dieser Zeile des Programms wird der eigentliche Text "Hallo, du schöne Welt!" mittels des Befehls std::cout ausgegeben. Das Element std:: gibt an, dass der Befehl der Standardausgabe cout im Namespace der Standardbibliothek zu finden ist. Der Operator << hat die Bedeutung "sende an" und schreibt sein zweites Argument auf sein erstes. Am Ende von jeder Befehlszeile eines C++ Programms muss ein Semikolon stehen.

Damit man das C++ ausführen kann, muss man den Quelltext ( HelloWorld.cpp ) in ein ausführbares Programm umwandeln. Ich nehme im Folgenden an, dass Sie sich auf einem Computer mit Linux-Betriebssystem befinden. Zum Umwandeln eines C++ Quelltextes in ein ausführbares Programm benutzt man einen C++ Compiler - ein separates Programm, welches man zunächst installieren muss. Hierzu öffnet man ein Linux-Terminal Fenster (siehe Eine kleine Einführung in Linux) und gibt den folgenden Befehl ein:
sudo apt-get install build-essential
, mit welchem die "Gnu Compiler Collection (GCC)" auf Ihrem Linux System installiert wird (siehe GCC).
Nun laden Sie sich den Quelltext des HelloWorld Programms auf Ihren Computer in ein beliebiges Verzeichnis und öffnen ein Terminal in diesem Verzeichnis. Das untere Bild zeigt dies auf meinem Computer.

Auf der linken Seite sehen Sie den Ordner "C-Programme", in dem sich der Quelltext ( HelloWorld.cpp ) befindet und auf der rechten Seite das Linux-Terminal.
Jetzt führen Sie den Kompilierung-Prozess durch, indem Sie das folgende Kommando in der Linux-Shell ausführen: g++ HelloWorld.cpp
Der C++ Compiler g++ wandelt dabei den Quelltext in ein ausführbares Programm und erzeugt eine neue Datei die "a.out" heißt. Das folgende Bild zeigt dies wieder auf meinem Computer.

Auf der linken Seite sehen Sie, dass durch die Kompilierung des Quelltextes die Datei "a.out" im Ordner "C-Programme" erzeugt wurde.
Mit dem Befehl ./a.out kann man das Programm nun ausführen und es erscheint der Text "Hallo, du schöne Welt!" im Linux-Terminal Fenster (siehe unteres Bild).

HelloWorld_1.cpp
#include <iostream>                           // Ein- und Ausgabebibliothek
using namespace std;                          // Benutze den Namensraum std

int main(){                                   // Hauptfunktion
    cout << "Hallo, du schöne Welt!" << endl; // Ausgabe eines Textes
}
Starten des Programms in der Linux Shell.

Ein wenig unschön an der Ausgabe ist, dass sich der geschriebene Text nicht separat in einer Zeile befindet. Durch den Zusatz "<< endl" in der Quelldatei (siehe nebenstehendes Programm "HelloWorld_1.cpp") wird ein Zeilenumsprung bewirkt, sodass der Text nun in einer separaten Zeile erscheint.
Eine weitere Veränderung besteht im Hinzufügen der Zeile "using namespace std;" und im veränderten Ausgabebefehl (nur "cout" und nicht std::cout). Durch using namespace std;" wird dem Compiler vermittelt, dass sich das Programm im Namensraum (Namespace) der Standardbibliothek aufhält und als Folge dessen braucht man dies für den Befehl "cout" nicht mehr explizit zu kennzeichnen.
Kompiliert man dieses Programm und startet es in der Linux Shell, wird der Text jetzt in einer Zeile separat ausgegeben (siehe nebenstehende Abbildung).

Eine weitere Version des Programms (welches nicht den C++-Befehl cout, sondern den in der C-Befehl printf(...) benutzt) ist in der unteren Abbildung dargestellt. printf(...) ist ein, sowohl in C- als auch in C++ Programmen oft verwendeter Befehl einer formatierten Ausgabe und dieser wird auch im Laufe der Vorlesung meist für die Standardausgabe verwendet werden. Der Zeilenumbruch am Ende des Textes wird durch \n bewirkt (näheres zu printf(...) siehe Datentypen, Variablen und Arithmetik).

HelloWorld_2.cpp
#include <stdio.h>                      // Standard Input- und Output Bibliothek in C, z.B. printf(...)

int main(){                             // Hauptfunktion
    printf("Hallo, du schöne Welt!\n"); // Ausgabe eines Textes mit printf(...)
}

Im oberen Programm werden keine C++ Komponenten verwendet und der Quelltext stellt demnach ein reines C-Programm dar. Kompilieren kann man das Programm dennoch auch mit dem C++ Compiler g++ (g++ HelloWorld_2.cpp). Man hätte jedoch das ausführbare Programm auch mit dem C-Compiler gcc erstellen können (gcc HelloWorld_2.cpp).