Hogyan lehet a legjobban megvalósítani a típusátalakítást C ++ nyelven?



Ez a cikk megismerteti Önt a C ++ típusú konverzióval, és ezt követi egy részletes programos bemutatóval.

Ez a cikk még egy érdekes témát ismertet meg, amelybe beírja a konverziót C ++ és kövesse részletes gyakorlati bemutatóval. A következő hivatkozásokkal foglalkozunk ebben a cikkben,

Tehát kezdjük el,





Írja be a konverziót C ++ nyelven

A típuskonverzió az egyik típusból a másikba történő átalakításra utal. A típuskonvertálás fő gondolata az, hogy az egyik típusú változó kompatibilis legyen egy másik típusú változóval egy művelet végrehajtása érdekében. Például két változó összegének megkereséséhez, az egyik int típusú és a másik float típusú. Tehát be kell írnia a cast int változót a lebegéshez, hogy mindkettő lebegő típus legyen az összeg megtalálásához. Ebben a blogban megtudhatjuk, hogyan kell végrehajtani a típusátalakítást C ++ nyelven.

A C ++ - ban kétféle típusú konverzió létezik, azaz implicit típusú és explicit típusú konverzió.



Implicit típusú konverzió

Az implicit típusátalakítást vagy az automatikus típusátalakítást a fordító önállóan végzi. A felhasználónak nincs szüksége külső váltásra, hogy változót típussá tegyen egyik típusból a másikba.

Ez akkor fordul elő, ha egy kifejezés egynél több típusú változót tartalmaz. Tehát ezekben a forgatókönyvekben automatikus típusú átalakításra kerül sor az adatvesztés elkerülése érdekében.Az automatikus típuskonvertálás során a kifejezésben szereplő összes adattípus a legnagyobb adattípussal rendelkező változó adattípusává alakul.

java kettős váltás int-re

Az alábbiakban bemutatjuk az automatikus típusátalakítás sorrendjét. Azt is mondhatja, hogy a legkisebbtől a legnagyobbig terjedő adattípus a típusátalakításhoz.



bool -> char -> rövid int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double

A hallgatólagos konverziók elveszíthetnek információkat, például a jelek elveszhetnek, ha az aláírt típust implicit módon átalakítják aláíratlanná, és túlcsordulás léphet fel, ha a hosszút implicit módon úszóvá alakítják.

Most nézzünk meg egy példát annak megértésére, hogy az implicit típusú konverzió hogyan működik a C ++ nyelven.

Példa

#include névtér használatával std int main () 12w {int int1 = 100 // egész int1 char char1 = 'c' // karakter char1 // char1 implicit módon konvertálva int-re, a 'c' ASCII értékével, azaz 99 int1 = int1 + char1 // az int1 implicit módon úszó float-vá alakul át flt1 = int1 + 2,7 cout<< 'int1 = ' << int1 << endl << 'char1 = ' << char1 << endl << 'flt1 = ' << flt1 << endl return 0 }

Kimenet

int1 = 199

char1 = c

flt1 = 201,7

Következő ebben a típusú konverzióban a C ++ cikkben,

Kifejezett típusú konverzió

Az explicit típusú konverzió vagy a típusöntés a felhasználó által definiált típuskonverzió. Kifejezett típusú konverzió esetén a felhasználó egy változótípust alakít át egy másik típusra. Az explicit típusú konverziót kétféleképpen lehet elvégezni a C ++ nyelven:

  • Konvertálás hozzárendeléssel
  • Konvertálás Cast operátor használatával

Most nézzük meg az egyes típusok explicit kifejezésének egyes módjait.

Konvertálás hozzárendeléssel

Ennél a típuskonverziónál a szükséges típust kifejezetten meghatározzuk a zárójelben lévő kifejezés előtt. Az adatvesztés explicit típusú casting esetén történik. Erőteljes castingnak számít. Nézzünk meg egy példát.

Példa

#include névtér használatával std int main () {double dbl1 = 8.9 // Kifejezett átalakítás kettősből int intbe res = (int) dbl1 + 1 cout<< 'Result = ' << res return 0 }

Kimenet

Eredmény = 9

Következő ebben a típusú konverzióban a C ++ cikkben,

Konvertálás Cast Operator használatával

A Cast operátor unárista operátor, amely arra kényszeríti az egyik adattípust, hogy egy másik adattípussá alakítsa át. A C ++ kategóriában négyféle casting létezik: statikus szereposztás, dinamikus szereposztás, Const Cast és Reinterpret Cast.

  • Statikus szereplők - Ez a legegyszerűbb típusú öntvény, amely használható. Nem csak upcastokat végez, hanem downcastokat is. Ez egy fordított idő leadása. A futás során nem végeznek ellenőrzéseket annak biztosítására, hogy az átalakítandó objektum a céltípus teljes objektuma.
  • Dinamikus szereposztás - Biztosítja, hogy a típusátalakítás eredménye a célmutatótípus érvényes, teljes objektumára mutasson.
  • Const Cast - manipulálja, hogy az objektumnak állandónak vagy nem állandónak kell-e lennie. Biztosítja, hogy vagy az állandót kell beállítani, vagy eltávolítani.
  • Értelmezze Cast - bármely mutatótípust bármilyen más mutatótípussá konvertál, még a nem kapcsolódó osztályokba is. Nem ellenőrzi, hogy a mutató típusa és az általa mutatott adatok megegyeznek-e vagy sem.

Nézzünk meg egy példát a statikus szereposztásról,

Példa

#include névtér használatával std int main () {float flt = 30.11 // int cast operátor használatával int int = static_cast (flt) cout< 

Kimenet

cloudera tanúsított rendszergazda az apache hadoop számára

30

Ezzel eljutottunk a C ++ típusú konverzióról szóló cikk végéhez.Remélem, hogy ezt informatívnak és hasznosnak találta, kövesse nyomon a hasonló témájú oktatóanyagokat. Lehet, hogy Ön is megvásárolja képzési programunkato alapos ismereteket szerezhet a jQuery-ről, annak különféle alkalmazásaival együtt élő online képzéshez 24/7 támogatással és egész életen át elérhető hozzáféréssel.

Van egy kérdésünk? Említse meg őket a cikk megjegyzés rovatában, és mi kapcsolatba lépünk Önnel.