Returtype av reinterpret_cast
Det er ingen returtype for det. Pekertypen konverteres bare.
Parametere for reinterpret_cast
Referansepekervariabelen er det eneste argumentet den godtar.
Bruk av reinterpret_cast
La oss snakke mer om C ++ tolkningen.
Eksempel 1:
I dette eksemplet vil vi vise hvordan reinterpret_cast fungerer på sitt mest grunnleggende nivå.
#inkludere
ved hjelp av navneområdet STD;
int main ()
int* a = ny int (90);
char* chr = reinterpret_cast(en);
cout << *a << endl;
cout << *chr << endl;
cout << a << endl;
cout << chr << endl;
retur 0;
Vi starter koden ved å integrere overskriftsfilen . Standard navneområdet brukes i neste trinn. Vi definerer hovedfunksjonen (). Innenfor funksjonen konstruerer vi en peker. Sammen med dette initialiserer vi en variabel og gir en verdi av denne pekeren.
Deretter erklærer vi en peker av karakterdatatypen. Vi bruker kommandoen reinterpret_cast. Her passerer vi karakterpekeren. Videre bruker vi COUT -setningen først til å skrive ut variabel pekeren så vel som karakterpekeren. Deretter bruker vi cout -setningen for å vise verdiene til begge pekere. Til slutt bruker vi retur 0 -kommandoen.
Eksempel 2:
Denne koden demonstrerer hvordan du bruker strukturen som illustrasjon.
#inkludere
ved hjelp av navneområdet STD;
struct myStruct
int jeg;
int j;
char m;
bool n;
;
int main ()
myStruct e;
e.i = 25;
e.J = 40;
e.m = 'u';
e.n = sant;
int* ptr = reinterpret_cast(& e);
cout << sizeof (e) << endl;
cout << *ptr << endl;
PTR ++;
cout << *ptr << endl;
PTR ++;
char* chr = reinterpret_cast(PTR);
cout << *chr << endl;
Chr ++;
bool* b = reinterpret_cast(Chr);
cout << *b << endl;
cout << *(reinterpret_cast(Chr));
retur 0;
Biblioteket og standard navneområdet brukes ved begynnelsen av koden. Vi lager en struktur som kalles mystruct. Innenfor denne strukturen initialiserer vi to variabler som heter I og J. Deretter lager vi to andre variabler som den første variabelen har en tegndatatype, og den andre variabelen har en boolsk datatype. I det senere trinnet bruker vi Main () -funksjonen. Inne i denne funksjonen kaller vi en variabel "e" av strukturen "mystruct".
Deretter tildeler vi noen tilfeldige verdier til variabelen tilknyttet strukturen. De to første variablene inneholder heltallverdiene. Den tredje variabelen inneholder tegnet. Den siste variabelen inneholder den boolske verdien. Under støping er datatypen til variabelen den samme som for den virkelige variabelen. Nå konverterer vi pekeren til “E” til pekeren til variabelen som har heltalldatatypen. Vi konstruerer pekeren og setter verdien lik reinterpret_cast. Deretter bruker vi cout -uttalelsen. Vi øker verdien av pekeren “PTR” med 1. Nå skriver vi ut verdien til neste peker, så vi bruker cout -setningen igjen.
I tillegg heves denne pekerens verdi med 1. Vi bruker rollebesetningen på pekeren til karakteren “Chr” ved bruk av reinterpret_cast. Nå, bare vis verdien av karakterpekeren ved hjelp av cout -uttalelsen. Ettersom *CHR allerede tilsvarer en boolsk verdi, brukes en lignende datatype -transformasjon for å oppnå verdien. Dermed bruker vi datatypen *B, som er en bool. Vi bruker reinterpret_cast for den boolske pekeren. Vi skriver ut verdien til den boolske variabelen ved å bruke cout -setningen. Reinterpret_cast er ansatt for å vise verdien som er pekt av *Chr. For å avslutte koden, bruk Return 0 -setningen.
Eksempel 3:
Pekeren omfortolket er demonstrert i dette tilfellet.
#inkludere
ved hjelp av navneområdet STD;
klasse u
offentlig:
void Fun_x ()
cout << " Present in class U\n";
;
Klasse V
offentlig:
void Fun_B ()
cout << " Present in class V\n";
;
int main ()
V* i = new V ();
V* new_x = reinterpret_cast(Jeg);
new_x-> fun_x ();
retur 0;
Først av alt introduserer vi modulen og standard navneområdet. Deretter konstruerer vi en klasse som heter u. Vi definerer en funksjon av denne klassen offentlig. Vi bruker cout -kommandoen innen denne funksjonen. Deretter lager vi en ny klasse som heter V. Etter å ha ringt funksjonen, gjør vi det offentlig. Her brukes cout -uttalelsen. Vi starter kodingen inne i Main () -metoden. Først konstruerer vi objektet “jeg” i klasse V. Vi forvandler pekeren til objektet og gir referansen til klasse V til klasse U, så vi bruker reinterpret_cast. Deretter henter vi funksjonen “FUN_X” i klasse U. Bruk deretter retur 0 -kommandoen for å avslutte programmet.
Konklusjon
Vi diskuterte C ++ reinterpret_cast i denne artikkelen. Det er en støpegruppe som heter reinterpret_cast i C++. Uansett om klassene er koblet eller ikke, brukes den til å transformere en peker av en datatype til en annen peker. Vi evaluerte tre eksempler, og i en av dem kan vi se hvordan vi bruker reinterpret_cast opererer i sin mest grunnleggende form. I det andre eksemplet bruker vi en struktur og bruker deretter reinterpret_cast for å endre pekeren til en annen peker. Den siste illustrasjonen viser en peker på nytt.