![]() |
![]() |
C++ |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
Wenn Variable definiert werden, so hat man die Wahl, an welcher Stelle im Quelltext dies geschehen soll. Aus den bisherigen Erklärungen geht nur hervor, dass eine Variable vor ihrer ersten Verwendung definiert werden muss. Sie erstellen zur Zeit ausschließlich Programme, die als Funktion die Hauptfunktion (main function) aufweisen. Somit gibt es für die Stelle einer Variablendefinition nur die Möglichkeiten, diese innerhalb oder außerhalb der Hauptfunktion zu definieren. Im weiteren Verlauf werden Sie jedoch noch andere Funktionen erstellen.
Beim definieren einer Variablen unterscheidet man zwischen einer globalen Variablen und einer lokalen Variablen.
Konstanten werden fast genauso definiert wie Variable. Sie erhalten vor der Typangabe das Schlüsselwort const
und nach dem Namen eine Wertzuweisung.
Beispiele:
const int Anzahl = 50;
Anzahl
ist somit eine Konstante mit dem Wert 50. Ihr Inhalt (Wert) kann nicht verändert werden.
const std::string Dateiname = "daten.txt";
Dateiname
enthält den unveränderlichen String "daten.txt".
Globale Variable werden außerhalb jeglicher Funktion definiert. Zumeist erfolgt dies nach den #include-Anweisungen und den Namespace-usings. Solche Variable sind für alle Funktionen in derselben Datei öffentlich. Jede Funktion kann darauf zugreifen und deren Inhalt verändern.
Globale Variable sind wie schlecht gepflegte öffentliche Toiletten - unhygienisch. Jede Funktion kann sie benutzen und verändern. Eine Kontrolle dieser Veränderungen ist unmöglich. Konstanten hingegen können nicht verändert werden und sind mit öffentlichen Toiletten nicht zu vergleichen.
Wir definieren also in Zukunft Variable ausschließlich lokal (s.u.). In einer Übergangsphase dürfen Sie jedoch ausnahmsweise einmal eine globale Variable verwenden, solange Ihnen keine andere Möglichkeit einfällt - solange bis Ihnen eine Alternative aufgezeigt wird.
Lokale Variable werden innerhalb einer Funktion definiert - zwischen den geschweiften Klammern {...}. Sie existieren ausschließlich innerhalb ihrer (Heimat-)Funktion und können per se (von sich aus, ohne weiteres) nicht von anderen Funktionen verwendet werden. Eine lokale Variable kann mit einer Toilette in Ihrer Wohnung verglichen werden. Sie kann von jemandem aus einer anderen Wohnung nur benutzt werden, wenn Sie ihm oder ihr dies erlauben. Sie haben also die Kontrolle über die Benutzung Ihrer Toilette. Eine Funktion hat ebenso die Kontrolle über die Verwendung ihrer lokalen Variablen. Und das ist gut so.
Lokale Konstanten werden kaum verwendet. Nur in sehr umfangreichen Funktionen, in denen ein konstanter Wert an mehreren Stellen benötigt wird, sind sie sinnvoll. Und solche umfangreiche Funktionen gilt es zu vermeiden.
Globale Variable und Konstanten leben (existieren) genau so lange wie das Programm ausgeführt wird. Lokale Variable und Konstanten hingegen leben nur so lange wie deren (Heimat-)Funktion ausgeführt wird. Eine lokale Variable wird zur Laufzeit des Programms angelegt, sobald die Abarbeitung der Funktion beginnt. Am Ende der Funktion wird der von der Variablen beanspruchte Speicherplatz freigegeben. Dies ist gemeint, wenn man davon spricht, dass die Variable "stirbt".
Globale Variable sind so gut es geht zu vermeiden. Statt dessen sind lokale Variable zu verwenden. Globale Konstanten sind hingegen völlig unproblematisch.