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.
- Implicit konverzió
- 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 int
adatot egy double
változóhoz.
num_double = num_int;
Itt az int
értéket double
a 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 double
adatot egy int
változóhoz.
num_double = num_int;
Itt az double
értéket int
a 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 int
nem 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.

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:
- C stílusú casting (más néven cast jelölés )
- Funkció jelölése (más néven régi C ++ stílusú casting )
- 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