C ++ típusú konverzió

Ebben az oktatóanyagban példák segítségével megismerhetjük a C ++ típusú átalakítás alapjait.

A C ++ lehetővé teszi számunkra, hogy az egyik típusú adatot átalakítsuk a másiké. Ez a típusátalakítás néven ismert.

Kétféle típusú konverzió létezik a C ++ nyelven.

  1. Implicit konverzió
  2. Explicit Conversion (más néven Type Casting)

Implicit típusú konverzió

A fordító automatikusan elvégzi a típusátalakítást implicit típusú konverziónak nevezzük. Ez a fajta átalakítás automatikus átalakítás néven is ismert.

Nézzünk meg két példát az implicit típusú konverzióra.

1. példa: Konvertálás int-ről duplára

 // Working of implicit type-conversion #include using namespace std; int main() ( // assigning an int value to num_int int num_int = 9; // declaring a double type variable double num_double; // implicit conversion // assigning int value to a double variable num_double = num_int; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Kimenet

 num_int = 9 num_double = 9

A programban adtunk egy intadatot egy doubleváltozóhoz.

 num_double = num_int;

Itt az intértéket doublea fordító automatikusan átalakítja, mielőtt hozzárendelnék a num_double változóhoz. Ez egy példa az implicit típusú konverzióra.

2. példa: Automatikus átalakítás kettősről int-re

 //Working of Implicit type-conversion #include using namespace std; int main() ( int num_int; double num_double = 9.99; // implicit conversion // assigning a double value to an int variable num_int = num_double; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Kimenet

 szám_int = 9 szám_dupla = 9,99

A programban adtunk egy doubleadatot egy intváltozóhoz.

 num_double = num_int;

Itt az doubleértéket inta fordító automatikusan átalakítja, mielőtt hozzárendelnék a num_int változóhoz. Ez az implicit típusú konverzió példája is.

Megjegyzés: Mivel intnem lehet tizedes rész, a tizedespont utáni számjegyeket a fenti példában csonkoljuk.

Adatvesztés a konverzió során (szűkülő konverzió)

Amint a fenti példából láthattuk, az egyik adattípusból a másikba történő átalakítás hajlamos az adatvesztésre. Ez akkor történik, ha egy nagyobb típusú adatot kisebb típusúvá konvertálnak.

Lehetséges adatvesztés a típusátalakítás során

C ++ explicit konverzió

Amikor a felhasználó manuálisan módosítja az adatokat egyik típusból a másikba, ezt explicit konverziónak nevezzük . Ez a fajta átalakítás más néven típusöntés .

Három fő módja van annak, hogy explicit konverziót alkalmazzunk a C ++ nyelven. Ők:

  1. C stílusú casting (más néven cast jelölés )
  2. Funkció jelölése (más néven régi C ++ stílusú casting )
  3. Típusátalakító operátorok

C stílusú casting

Ahogy a neve is mutatja, ezt a típusú castingot a C programozási nyelv részesíti előnyben . Öntött jelölés néven is ismert .

A stílus szintaxisa a következő:

 (data_type)expression;

Például,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;

Funkció stílusú casting

Használhatjuk a jelölés funkciót is az adatok egyik típusból a másikba történő öntéséhez.

A stílus szintaxisa a következő:

 data_type(expression);

Például,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);

3. példa: Típus öntés

 #include using namespace std; int main() ( // initializing a double variable double num_double = 3.56; cout << "num_double = " << num_double << endl; // C-style conversion from double to int int num_int1 = (int)num_double; cout << "num_int1 = " << num_int1 << endl; // function-style conversion from double to int int num_int2 = int(num_double); cout << "num_int2 = " << num_int2 << endl; return 0; )

Kimenet

 num_double = 3.56 num_int1 = 3 num_int2 = 3

A típusátalakításhoz mind a C stílus típusátalakítást, mind pedig a függvény stílus átalakítást alkalmaztuk, és megjelenítettük az eredményeket. Mivel ugyanazt a feladatot látják el, mindkettő ugyanazt a kimenetet adja nekünk.

Típusátalakító operátorok

E két öntvény mellett a C ++ négy operátorral is rendelkezik a típusátalakításhoz. Típusátalakítási operátorokként ismertek . Ők:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Ezeket a szereplőket későbbi oktatóanyagokban fogjuk megismerni.

Ajánlott oktatóanyagok:

  • C ++ karakterlánc int-hez és fordítva
  • C ++ karakterlánc lebegéshez, dupla és fordítva

érdekes cikkek...