const

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Modifizierer

Syntax

 const <variablenname> [ = <wert> ] ;
 <funktionsname> ( const <typ>*<variablenname> ;)
 <funktionsname> const;

Beschreibung

Der Modifizierer const wird verwendet, um Änderungen des Werts einer Variable zu verhindern.

Mit dem const-Modifizierer weisen Sie einer Variablen einen Anfangswert zu, der vom Programm nicht geändert werden kann. Jede spätere Wertzuweisung für eine const-Variable führt zu einer Fehlermeldung des Compilers.

Ein Zeiger const kann nicht verändert werden, obwohl das Objekt, das auf diesen Zeiger zeigt, verändert werden kann. Betrachten Sie dazu die folgenden Beispiele.

 const float pi = 3.14;
 
 // Falls selbstbestimmend, entspricht const einem Wert vom Typ int.
 const  maxint  = 12345;
 
 // Ein konstanter Zeiger *const str1 = "Hello, Welt";
 

 // Ein Zeiger auf einen konstanten String.char const *str2 = "C++Builder";

Wenn diese Deklarationen vorgegeben sind, sind die folgenden Anweisungen ungültig.

 pi   = 3.0;         // Weist einer Konstante einen Wert zu.
 i     = maxint++;   // Inkrementiert eine Konstante.
 str1 = "Hi, there!" // Laesst str1 auf irgendetwas zeigen.

Verwendung des Schlüsselworts const in C++ Programmen:

In C++ ist die Verwendbarkeit von const auf Klassen und Elementfunktionen erweitert. In einer C++ Klassendefinition, verwenden Sie den Modifizierer const nach der Deklaration einer Elementfunktion. Die Elementfunktion wird daran gehindert, Daten in der Klasse zu verändern.

Ein Klassenobjekt, das mit dem Schlüsselwort const definiert worden ist, kann nur solche Elementfunktionen aufrufen, die ebenfalls mit const definiert worden sind. Wenn Sie eine Elementfunktion aufrufen, die nicht als const definiert ist, gibt der Compiler eine Warnung aus, die besagt, dass eine nicht als const definierte Funktion für ein const-Objekt aufgerufen wurde. Die derartige Verwendung des Schlüsselworts const ist eine Sicherheitsfunktion von C++.

Warnung: Eine const-Variable kann indirekt über einen Zeiger verändert werden, wie in folgendem Beispiel:

 *(int *)&mein_alter = 35;

Wird der Modifizierer const für einen Zeigerparameter in der Parameterliste einer Funktion benutzt, so kann die Funktion die Variable, auf die der Zeiger weist, nicht verändern. Zum Beispiel:

 int printf (const char *format, ...);

Die Funktion printf kann nun den Formatstring nicht mehr verändern.

Siehe auch