Das erste Konstrukt sind Kommentare. Sie haben keinen Einfluß auf den Programmablauf (oder den Computer), sondern sollten lediglich zum besseren Verständnis des Programms eingefügt werden. Als Kommentar wird jener Text angesehen, der rechts der Zeichen `//' steht.
Das zweite wesentliche Element sind Daten, also z.B. die physikalischen Parameter die man dem Computer zur Berechnung gibt, Konstanten wie die Zahl , oder Indices , die zum Zählen verwendet werden. Man muß dem Computer zuerst mitteilen, welche Daten, Variablen und Konstanten man benötigen wird.
Operatoren und Funktionen sind nötig, um Daten zu
manipulieren. Beispiele für Operatoren sind die Grundrechenarten,
Beispiele für Funktionen sind trigonometrische Funktionen wie
Sinus und Cosinus. Funktionen sind nicht nur Sprachkomponenten,
sondern können auch vom Programmierer dazu verwendet werden,
häufig wiederkehrende Manipulationen zusammenzufassen und dadurch
übersichtlich ins Programm einzubauen.
Wichtig ist, daß das sog. Hauptprogramm im Prinzip ebenfalls
eine Funktion ist, die immer main genannt werden muß.
Der Beginn und das Ende einer Funktion sind durch `{' und `}'
gekennzeichnet.
Die daneben wichtigsten Sprachelemente sind diejenigen für die Kommunikation zwischen Benutzer und Computer, kurz die der Ein- und Ausgabe, die häufig auch mit der aus dem Angelsächsischen abgeleiteten Abkürzung I/O für Input/Output belegt werden. Im Sprachumfang von C/C++ sind genormte Bibliotheksfunktionen enthalten, die die Ausgabe auf den Bildschirm oder in Dateien regeln. Ebenso wird die Eingabe per Tastatur, Maus oder andere angeschlossene Geräte (externe Meßgeräte, Trackball, etc.) behandelt. Dies wird durch spezielle Bibliotheken erledigt, die je nach der vorhandenen Rechnerhardware und -software verschieden sein können und daher auch nicht allgemein behandelt werden können.
Wie man sieht, sind Dateien eine zweigleisige Möglichkeit mit einem Programm zu kommunizieren und Daten sowohl ein- als auch auszugeben.
Zuletzt seien noch Organisations-elemente erwähnt, die nicht direkt zur Programmiersprache gehören, sondern von einer Vorstufe des Compilers verarbeitet werden, dem sog. Präprozessor. Diese Organisationselemente erlauben es, unübersichtliche Programmelemente auszulagern oder Programmteile einfach auszublenden.
Das einfachste denkbare Programm gibt den Text ``Hello World!'' auf den Bildschirm aus:
#include <iostream> using std::cout; int main() { cout << "Hello World!\n" ; // Zeichenkette auf Bildschirm ausdrucken return 0; }
#include <iostream>
holt die Definitionen
aus der Standard-Bibliothek. Diese ist nötig für die Ein- und
Ausgabe von Daten und Text. Diese Zeile muß
am Anfang eines jeden Programms stehen, das I/O Operatoren wie z.B.
`cin
', `cout
', `<<
' oder `>>
' enthält.
using std::cout
importiert das Symbol
cout
aus dem Namensraum std
. Namensräume werden in
C++ benutzt, um Algorithmen in verschiedenen Bibliotheken
voneinander zu trennen. Ein cout
aus anderen Namensräumen
(evtl. selbst definierte) kann nun nicht mehr verwendet werden.
Wir werden häufig auf die
C++-Standardbibliothek zurückgreifen, die den Namensraum
std
benutzt. Zur Benutzung von C-Funktionen ist keine
using
-Direktive nötig.
main()
ist eine Funktion vom Typ int
. Jedes Programm
besteht aus zumindest dieser einen Funktion, kann aber auch aus einer
beliebigen Anzahl zusammengesetzt sein. Dabei verliert main()
allerdings nie seine besondere Rolle.
return 0
gibt den Wert 0 an das aufrufende Programm, also
in diesem Fall an das Betriebssystem zurück. Man kann von Null
verschiedene Werte verwenden um Fehler oder Erfolg der Funktion
anzuzeigen.
{}
schließen das Hauptprogramm, eine Funktion,
oder allgemeiner, Programm-Blöcke ein. Zu jeder
Beginn-Klammer {
gehört eine Ende-Klammer }
.
()
umschließen eventuelle Argumente, die
an main
übergeben werden.
"..."
umschliessen Text (Feld von char
's).
\n
' führt bei der Ausgabe zu einer
neuen Zeile.
cout
bezeichnet das Standard-Ausgabe Medium, im Normalfall also
den Bildschirm. Im ANSI Standard würde man an dieser Stelle
std::cout
verwenden.
<<
wird als Ausgabeoperator
benutzt und gibt alles rechts von ihr stehende ``nach links'',
auf cout
, also auf dem Bildschirm aus.
;
' beendet
werden, denn eine (optisch) neue Zeile im Programm wird vom Compiler nicht
als neues Programmelement erkannt. Man trennt einzelne Befehle also
durch `;
', sollte aber vermeiden, dies innerhalb einer Zeile
zu tun. Das Semikolon hat die Funktion der Trennung zweier
Anweisungen, daher steht es nicht am Ende von Anweisungsblöcken, die
durch geschweifte Klammern {}
gekennzeichnet sind.
Große Programmbereiche sollten mit Präprozessordirektiven ausgeblendet werden (gekennzeichnet durch #). Auch sollte man C++-Kommentare in Zeilen vermeiden, die Präprozessordirektiven enthalten, da der Präprozessor aus C-Zeiten möglicherweise nur C-Kommentarsyntax korrekt behandelt.
#if 0 /* Hauptprogram main wird ausgeblendet */ int main() { // main is THE keyword, the program starts here for ( int i=0 /* loop variable */; i< 10 ; i++ ) { // for-Schleife ; // Nichtstun } // Ender der for-Schleife } #endif /* Ende der Ausblendung... */