C++-Programmierung/ Einführung in C++/ Zusammenfassung
Ein C++-Programm beginnt mit der Hauptfunktion main()
.
Ein- und Ausgabe
BearbeitenDie Ein- und Ausgabe erfolgt in C++ über Streams, mehr dazu erfahren Sie in einem der folgenden Abschnitte. Um die Ein- und Ausgabe zu nutzen müssen Sie die Headerdatei iostream
einbinden. Die Streamobjekte cin
und cout
liegen im Namensraum std
. Auf Elemente innerhalb eines Namensraums wird mit dem Bereichsoperator ::
zugegriffen.
#include <iostream>
int main(){
std::cout << "Das wird ausgegeben.\n";
int wert;
std::cin >> wert;
std::cout << "Wert ist: " << wert << std::endl;
}
endl
fügt einen Zeilenumbruch ein und leert anschließend den Ausgabepuffer.
Mit der using
-Direktive können auch alle Elemente eines Namensraums verfügbar gemacht werden.
Kommentare
BearbeitenEs gibt in C++ zwei Arten von Kommentaren:
Rechnen
BearbeitenC++ beherrscht die 4 Grundrechenarten, die Operatoren lauten +
, -
, *
und /
. Es gilt Punkt- vor Strichrechnung und Klammern ändern die Auswertungsreihenfolge. Weiterhin bietet C++ mit dem Zuweisungsoperator kombinierte Rechenoperatoren:
Für Ganzzahlige Datentypen stehen weiterhin der Inkrement- und der Dekrementoperator, jeweils in einer Prä- und einer Postfixvariante zur Verfügung:
++lvalue; // Erhöht den Wert und gibt ihn zurück
lvalue++; // Erhöht den Wert und gibt den alten Wert zurück
--lvalue; // Erniedriegt den Wert und gibt ihn zurück
lvalue--; // Erniedriegt den Wert und gibt den alten Wert zurück
Die Rückgabe der Präfixvariante ist ein lvalue, die Postfixvariante gibt ein rvalue zurück.
Variablen
BearbeitenDie Syntax zur Deklaration einer Variable lautet:
Datentypen
BearbeitenDie C++-Basisdatentypen sind:
- Typlos
void
(wird später erläutert)
- Logisch
bool
- Zeichen (auch Ganzzahlig)
char
(signed char
undunsigned char
)wchar_t
- Ganzzahlig
short
(signed short
undunsigned short
)int
(signed int
undunsigned int
)long
(signed long
undunsigned long
)
- Gleitkommazahlen
float
double
long double
Die Typmodifizierer signed
und unsigned
geben an, ob es sich um einen vorzeichenbehafteten oder vorzeichenlosen Typ handelt. Ohne diese Modifizierer wird ein vorzeichenbehafteter Typ angenommen, außer bei char
. Hier ist es Implementierungsabhängig. signed
und unsigned
können ohne Datentyp verwendet werden, dann wird int
als Typ angenommen.
Das Schlüsselwort const
zeichnet einen Datentyp als konstant aus. Es gehört immer zu dem, was links davon steht, es sei denn, links steht nichts mehr, dann gehört es zu dem Teil auf der rechten Seite. Es ist somit egal, ob Sie const
vor oder hinter einen Basisdatentypen schreiben:
const «Datentyp» «Variablenname»;
«Datentyp» const «Variablenname»;
C++ macht keine Angaben über die Größen der Datentypen, es ist lediglich folgendes festgelegt:
char
<=short
<=int
<=long
float
<=double
<=long double
Initialisierung
BearbeitenIn C++ gibt es 2 Möglichkeiten für eine Initialisierung:
Datentyp «Variablenname» = «Wert»;
Datentyp «Variablenname»(«Wert»);
Die erste Variante ist verbreiteter, aber nur möglich, wenn zur Initialisierung nur 1 Wert benötigt wird. Alle Basisdatentypen erwarten genau einen Wert.
Typaufwertung
BearbeitenWird ein Operator auf verschiedene Datentypen angewendet, müssen vor der Operation beide in den gleichen Typ konvertiert werden. Der Zieltyp ist üblicherweise der kleinste, der beide Werte darstellen kann. Für genauere Informationen lesen Sie bitte im Kapitel Rechnen mit unterschiedlichen Datentypen.
Kontrollstrukturen
BearbeitenAnweisungsblöcke
BearbeitenMit einem Anweisungsblock können mehrere Anweisungen zusammengefasst werden. Er kann überall stehen, wo auch eine Anweisung stehen könnte. Die Syntax sieht folgendermaßen aus:
Verzweigung
BearbeitenEine Verzweigung hat in C++ folgende Syntax:
Die Bedingung ist immer ein logischer Wert. Zahlenwerte werden implizit in logische Werte konvertiert. 0
entspricht dabei immer false
, alle anderen Werte werden zu true
umgewandelt.
Schleifen
BearbeitenEs gibt 3 Arten von Schleifen. Prinzipiell lässt sich in C++ jede der 3 Arten durch jede der jeweils andere simulieren. Allerdings kann je nach Anwendungsfall, rücksichtlich der Tipparbeit, einer der drei Arten am praktischsten sein.
// while-Schleife (Kopfgesteuert)
while(«Bedingung»)
«Anweisung»
// do-while-Schleife: Alle Anweisungen werden mindestens einmal ausgeführt. (Fußgesteuert)
do
«Anweisung»
while(«Bedingung»);
// for-Schleife: Ermöglicht die Initialisierung, die Bedingung (Kopfgesteuert) und eine Aktion,
// die nach jedem Schleifendurchlauf stattfindet, im Schleifenkopf zu platzieren
for(«Deklarationen (z.B. Zählvariablen)»; «Bedingung»; «Aktion nach einem Durchlauf (z.B. hochzählen)»)
«Anweisung»
Auswahl
BearbeitenMit der switch
-Anweisung kann eine Variable auf mehrere (konstante) Werte verglichen werden. Jedem dieser Werte können eine oder mehrere Anweisungen folgen, welche im Falle einer Übereinstimmung ausgeführt werden, bis das Ende des switch
-Blocks erreicht wird.
switch(«Variable»){
case «Wert»:
«Anweisung»
«...»
»break;«
«...»
default: // Wird ausgeführt, falls die Variable keinem der Werte entsprach
«Anweisung»
«...»
}
Wird das break;
am Ende eines Anweisungsblockes weggelassen, werden auch die darauf folgenden Blöcke ausgeführt, bis ein break;
gefunden oder das Ende der switch
-Anweisung erreicht ist.