C++-Programmierung/ Einführung in C++/ Zusammenfassung

Aus Wikibooks

Wechseln zu: Navigation, Suche


Ein C++-Programm beginnt mit der Hauptfunktion main().

Inhaltsverzeichnis

[Bearbeiten] Ein- und Ausgabe

Die 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.

Crystal Clear app terminal.png
#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önne auch alle Elemente eines Namensraums verfügbar gemacht werden.

Crystal Clear app terminal.png
#include <iostream>

using namespace std;

int main(){
    cout << "Das wird Ausgegeben.\n";

    int wert;
    cin >> wert;
    cout << "Wert ist: " << wert << endl;
}

[Bearbeiten] Kommentare

Es gibt in C++ zwei Arten von Kommentaren

Crystal Clear app terminal.png
// Kommentare über eine Zeile

/* und Kommentare über mehrere
Zeilen*/

[Bearbeiten] Rechnen

C++ 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:

Crystal Clear app terminal.png
lvalue += rvalue;
lvalue -= rvalue;
lvalue *= rvalue;
lvalue /= rvalue;

Für Ganzzahlige Datentypen stehen weiterhin der Inkrement- und der Dekrementoperator, jeweils in einer Prä- und einer Postfixvariante zur Verfügung:

Crystal Clear app terminal.png
++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.

[Bearbeiten] Variablen

Die Syntax zur Deklaration einer Variable lautet:

Crystal Clear app tutorials.png
Syntax:
«Datentyp» «Name»;

[Bearbeiten] Datentypen

Die C++-Basisdatentypen sind:

  • Typlos
    • void (wird später erläutert)
  • Logisch
    • bool
  • Zeichen (auch Ganzzahlig)
    • char ( signed char und unsigned char)
    • wchar_t
  • Ganzzahlig
    • short ( signed short und unsigned short)
    • int ( signed int und unsigned int)
    • long ( signed long und unsigned 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 Vorzeichenloser Typ angenommen, außer bei char. Hier ist es Implementierungs­abhä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 steht links vom, zu dem es gehört, außer links steht nichts mehr, in diesem Fall gehört es zu dem was rechts davon steht. Es ist somit egal ob Sie const vor oder hinter einen Basisdatentyp schreiben:

Crystal Clear app tutorials.png
Syntax:
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

[Bearbeiten] Initalisierung

In C++ gibt es 2 Möglichkeiten für eine Initialisierung:

Crystal Clear app tutorials.png
Syntax:
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.

[Bearbeiten] Typaufwertung

Wird 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.

[Bearbeiten] Kontrollstrukturen

[Bearbeiten] Anweisungsblöcke

Mit 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:

Crystal Clear app tutorials.png
Syntax:
{
    «Anweisung»
    «...»
}

[Bearbeiten] Verzweigung

Eine Verzweigung hat in C++ folgende Syntax

Crystal Clear app tutorials.png
Syntax:
if(«Bedingung»)
    «Anweisung»
else
    «Anweisung»

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.

[Bearbeiten] Schleifen

Es gibt 2 Arten von Schleifen, wobei die for-Schleife sehr mächtig ist und entsprechend öfter verwendet wird.

Crystal Clear app tutorials.png
Syntax:
// 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»

[Bearbeiten] Auswahl

Mit der switch-Anweisung, kann eine Variable auf mehrere (konstante) Werte verglichen werden. Jedem dieser Werte können eine oder mehrere Anweisungen folgen, welcher im Falle einer Übereinstimmung ausgeführt werden, bis das Ende des switch-Blocks erreicht wird.

Crystal Clear app tutorials.png
Syntax:
switch(«Variable»){
    case «Wert»:
        «Anweisung»
        «...»
        »break;«

    «...»

    default: // Wird ausgeführt, falls die Variable keinem der Werte entsprach
        «Anweisung»
        «...»
}
Symbol opinion vote.svg
Hinweis
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.
Persönliche Werkzeuge