C ++ const_cast

C ++ const_cast
For i utgangspunktet alle intensjoner, for eksempel prosesser med datatyper, interaksjoner med pekere og prosesser innen klasser, er C ++ et effektivt og potent programmeringsspråk som kan brukes til å manipulere informasjon og lagring. I C ++ kan const_cast -prosesser brukes med strukturdatatyper og klasser.

Const_cast -operatøren i C ++ vil bli brukt i denne artikkelen. La oss gjennomgå rollebesetningen i C ++ før vi fortsetter.

En metodikk for å konvertere den ene datatypen eller den andre støpe. Rollebesetningsoperatøren er operatøren som er ansatt for denne funksjonen. Dette er en operatør som tvinger konvertering mellom to forskjellige datatyper. En rollebesetningsoperatør er en operatør i C ++ programmeringsspråk som krever å transformere en datatype til en annen.

Const_cast er en av de rollebesetningene, som forvandler seg mellom to datatyper med spesifikke verdier. En uinitialisert verdi kan endres til en initialisert verdi ved bruk av const_cast for å knytte metoden. Const_cast er problematisk fordi det gjengir C ++ programmeringsspråk som ikke er i stand til å hindre brukere fra å søke å endre et konstant objekt. Som et resultat er denne handlingen udefinert.

Eksempel nr. 1

En konstant eller dynamisk modifiserer kan legges til eller elimineres fra en type ved bruk av Const_cast -operatøren. Const_cast -operatøren vil bli brukt i følgende eksempler:

#inkludere
ved hjelp av navneområdet 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;
retur 0;



Her skal vi innlemme biblioteket . Følgende standardnavnområde er blitt brukt. Vi kaller funksjonen f (). Vi passerer pekeren (* q) som parameter for denne funksjonen. "Cout" -uttalelsen vil bli brukt til å vise utfallet. Her har vi brukt Main () -metoden. Vi vil lage en variabel “jeg” og sette verdien som 30. Heltallet vil bli spesifisert som datatype, og denne variabelen vil være konstant. Nå har vi opprettet en ny peker (*j), og her gir vi verdien av den konstante variabelen “I” til denne pekeren.

Heltallsdatatypens peker (*e) vil bli konstruert, og vi gir dens verdi som const_cast. Deretter endrer vi verdien av variabel “jeg”. Her vil det ikke fungere som en konstant variabel. Ved å bruke verdien av variabelen “i”, vil vi gi verdien til den konstante pekeren (* J1). Så brukte vi const_cast. Vi setter verdien av pekeren “E1”. Returerklæringen brukes.

Eksempel nr. 2

I dette tilfellet har variabelen en konstant verdi, og den konstante pekeren peker på den variabelen. Vi kan imidlertid endre verdien av variabelen ved å konstruere en ny peker som har en lignende datatype og ved å bruke const_cast.

#inkludere
ved hjelp av navneområdet 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;
retur 0;



Først av alt vil pakken bli importert. Standard navneområdet vil bli brukt i neste linje. La oss starte koden i kroppen til hovedfunksjonen (). En variabel med navnet “T” initialiseres; Datatypen er et heltall. Vi gir den verdien “40.”Nøkkelordet“ const ”er før datatypen“ int ”, så denne verdien vil være konstant. Verdien av den konstante variabelen "T" vil bli spesifisert til pekeren (u) når vi konstruerer denne pekeren.

Deretter bruker vi "cout" -uttalelsen for å vise uttrykket "den opprinnelige verdien" på skjermen. For å bruke const_cast, vil en ny peker bli konstruert. I dette tilfellet ble pekeren “X” generert med en lignende heltalldatatype. Dermed kan vi endre verdien av den konstante pekeren “u” hvis vi gir denne pekeren “u”. Dette refererer til den nødvendige konstante variabelen “t”, innen const_cast, og tildel et tilfeldig tall til pekeren x. Ved å bruke const_cast i denne metoden, har vi endret den konstante verdien av variabelen fra 40 til 70. "Cout" -uttalelsen vil deretter bli brukt til å skrive ut den endrede verdien på skjermen. For å avslutte koden, må "retur" -kommandoen legges inn.

Eksempel nr. 3

Å endre en verdi som eksplisitt er spesifisert som konstant er udefinert funksjonalitet. Evaluer følgende kode:

#inkludere
ved hjelp av navneområdet 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;
retur 0;



I starten av koden vil vi inkludere overskriftsfilen . Dette biblioteket vil være ansvarlig for inngangs- og utgangsmetodologier. Så benyttet vi standard navneområdet. Nå vil vi erklære en funksjon. Innenfor denne funksjonen vil vi lage en peker (P). Så tildeler vi verdien til pekeren (P). Vi har ansatt returerklæringen, som returnerer pekerens verdi. Vi initialiserer en variabel “V”, og datatypen til denne variabelen er et heltall. Vi tildeler den verdien “20”. Denne verdien vil være konstant da vi har brukt nøkkelordet “const” før initialisering av denne variabelen.

Her konstruerer vi en ny peker (P_1). Og sammen med dette har vi brukt const_cast. Funksjonen “F (P 1)” har som mål å endre verdien av den konstante variabelen “V” ved å bruke Const Cast. Vi definerer en funksjon og gir verdien av den nye pekeren som argument. Deretter brukes “cout” -kommandoen til å vise utgangen. Til slutt vil en returuttalelse bli brukt.

Konklusjon

I denne artikkelen har vi diskutert const_cast i C++. Data kan konverteres fra det ene slaget til det andre ved en prosedyre som kalles støping. Vi har utført noen få eksempler som viser hovedbruken av const_cast. Const_cast-ordet vil forvandle en peker til en konstant enhet til en referanse til en ikke-konstant variabel. Const_cast -operatøren vil ikke bli brukt for å endre en variabel tilstand direkte. Et attributt som ikke ble definert som "const", kan effektivt endres hvis dens konstanthet blir forlatt.