C ++ const_cast

C ++ const_cast
Für grundsätzlich jede Absicht, wie z. In C ++ könnten konst_cast -Prozesse mit Strukturdatentypen und Klassen verwendet werden.

Der const_cast -Operator in C ++ wird in diesem Artikel verwendet. Lassen Sie uns das Casting in C ++ überprüfen, bevor wir fortfahren.

Eine Methodik zum Konvertieren des einen oder anderen Datentyps ist das Casting. Der Gussbetreiber ist der für diese Funktion verwendete Betreiber. Dies ist ein Bediener, der die Konvertierung zwischen zwei verschiedenen Datentypen erzwingt. Ein Gussbetreiber ist ein Operator in der C ++ - Programmiersprache.

Der const_cast ist einer der Gussbetreiber, der zwischen zwei Datentypen mit spezifischen Werten verwandelt wird. Ein nicht initialisierter Wert kann unter Verwendung des const_casts in einen initialisierten Wert geändert werden, um die Typ -Methode zu assoziieren. Const_cast ist problematisch, da es die C ++ - Programmiersprache unfähig macht, Benutzer daran zu hindern, ein konstantes Objekt zu ändern. Infolgedessen ist diese Aktion undefiniert.

Beispiel Nr. 1

Ein konstanter oder dynamischer Modifikator kann zu einem Typ mit dem Const_cast -Operator hinzugefügt oder aus einem Typ beseitigt werden. Der Const_cast -Operator wird in den folgenden Beispielen verwendet:

#enthalten
Verwenden von Namespace STD;
void f (int* q)
Cout << *q << endl;

int main (void)
const int i = 30;
const int* j = & i;
int* e = const_cast(J);
f (e);
int i1 = 60;
const int* j1 = &i1;
int* e1 = const_cast(J1);
*E1 = 90;
Rückkehr 0;



Hier werden wir die Bibliothek integrieren . Der folgende Standard -Namespace wurde verwendet. Wir nennen die Funktion f (). Wir übergeben den Zeiger (* q) als Parameter dieser Funktion. Die Anweisung "Cout" wird verwendet, um das Ergebnis zu zeigen. Hier haben wir die main () -Methode verwendet. Wir erstellen eine Variable "I" und setzen ihren Wert als 30. Die Ganzzahl wird als Datentyp angegeben, und diese Variable ist konstant. Jetzt haben wir einen neuen Zeiger (*J) erstellt und hier geben wir diesen Zeiger den Wert der konstanten Variablen „I“ an.

Der Zeiger des Ganzzahl Datentyps (*e) wird konstruiert, und wir geben seinen Wert als const_cast an. Dann ändern wir den Wert der Variablen "Ich". Hier fungiert es nicht als konstante Variable. Durch die Verwendung des Wertes der Variablen „I“ geben wir den Wert dem konstanten Zeiger (* J1) den Wert an. Dann haben wir const_cast angewendet. Wir setzen den Wert des Zeigers "E1". Die Return -Anweisung wird verwendet.

Beispiel Nr. 2

In diesem Fall hat die Variable einen konstanten Wert, und der konstante Zeiger zeigt auf diese Variable. Wir können jedoch den Wert der Variablen ändern, indem wir einen neuen Zeiger mit einem ähnlichen Datentyp erstellen und const_cast verwenden.

#enthalten
Verwenden von Namespace STD;
int main ()
const int t = 40;
const int* u = & t;
Cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(u);
*x = 70;
Cout<<"The updated value:"<<*u;
Rückkehr 0;



Zunächst wird das Paket importiert. Der Standard -Namespace wird in der nächsten Zeile verwendet. Beginnen wir den Code im Körper der Main () -Funktion. Eine Variable mit dem Namen "T" wird initialisiert; Sein Datentyp ist eine Ganzzahl. Wir geben ihm den Wert „40."Das Schlüsselwort" const "ist vor seinem Datentyp" int ", daher wäre dieser Wert konstant. Der Wert der konstanten Variablen „T“ wird dem Zeiger (u) angegeben, wenn wir diesen Zeiger konstruieren.

Anschließend verwenden wir die Anweisung "Cout", um den Ausdruck "den ursprünglichen Wert" auf dem Bildschirm anzuzeigen. Um const_cast zu verwenden, wird ein neuer Zeiger konstruiert. In diesem Fall wurde Zeiger „X“ mit einem ähnlichen Ganzzahl -Datentyp erzeugt. Daher können wir den Wert des konstanten Zeigers „U“ ändern, wenn wir diesem Zeiger „u“ geben. Dies bezieht sich auf die erforderliche konstante Variable „T“ innerhalb von const_cast und zuteilt dem Zeiger X eine Zufallszahl. Durch die Verwendung von const_cast in dieser Methode haben wir den konstanten Wert der Variablen von 40 bis 70 geändert. Die Anweisung „Cout“ wird dann verwendet, um den geänderten Wert auf dem Bildschirm zu drucken. Um den Code zu beenden, müsste der Befehl „Rückgabe“ eingegeben werden.

Beispiel Nr. 3

Einen Wert zu ändern, der explizit als konstant angegeben ist, ist undefinierte Funktionalität ist eine undefinierte Funktionalität. Bewerten Sie den folgenden Code:

#enthalten
Verwenden von Namespace STD;
int main ()
const int t = 40;
const int* u = & t;
Cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(u);
*x = 70;
Cout<<"The updated value:"<<*u;
Rückkehr 0;



Zu Beginn des Code werden wir die Header -Datei einschließen . Diese Bibliothek ist für Eingabe- und Ausgangsmethoden verantwortlich. Dann haben wir den Standard -Namespace verwendet. Jetzt werden wir eine Funktion deklarieren. Innerhalb dieser Funktion erstellen wir einen Zeiger (p). Dann weisen wir dem Zeiger (p) den Wert zu. Wir haben die Rückgabeerklärung verwendet, die den Wert des Zeigers zurückgibt. Wir initialisieren eine Variable „V“, und der Datentyp dieser Variablen ist eine Ganzzahl. Wir weisen ihm den Wert „20“ zu. Dieser Wert ist konstant, da wir das Schlüsselwort "const" verwendet haben, bevor wir diese Variable initialisieren.

Hier konstruieren wir einen neuen Zeiger (p_1). Und zusammen damit haben wir const_cast verwendet. Die Funktion „f (p 1)“ zielt darauf ab, den Wert der konstanten Variablen „V“ mit CONT CAST zu ändern. Wir definieren eine Funktion und bestehen den Wert des neuen Zeigers als Argument. Als nächstes wird der Befehl „Cout“ verwendet, um die Ausgabe anzuzeigen. Am Ende wird eine Rückgabeerklärung verwendet.

Abschluss

In diesem Artikel haben wir const_cast in c besprochen++. Daten können durch ein Verfahren namens Casting von einer Art zur anderen konvertiert werden. Wir haben einige Beispiele ausgeführt, die die Hauptverwendung von const_cast demonstrieren. Das const_cast-Wort verwandelt einen Zeiger in eine konstante Entität in einen Verweis auf eine nicht konstante Variable. Der Betreiber const_cast wird nicht angewendet, um einen variablen Status direkt zu ändern. Ein Attribut, das nicht als „const“ definiert wurde.