În acest tutorial, vom afla despre elementele de bază ale conversiei de tip C ++ cu ajutorul exemplelor.
C ++ ne permite să convertim datele de un tip la cel de altul. Aceasta este cunoscută sub numele de conversie de tip.
Există două tipuri de conversie de tip în C ++.
- Conversie implicită
- Conversie explicită (cunoscută și sub numele de Distribuție de tip)
Conversie tip implicită
Conversia de tip care se realizează automat de către compilator este cunoscută sub numele de conversie de tip implicită. Acest tip de conversie este, de asemenea, cunoscut sub numele de conversie automată.
Să analizăm două exemple de conversie de tip implicită.
Exemplul 1: conversie de la int la dublu
// 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; )
Ieșire
num_int = 9 num_double = 9
În program, am atribuit int
date unei double
variabile.
num_double = num_int;
Aici, int
valoarea este convertită automat double
în compilator înainte de a fi atribuită variabilei num_double. Acesta este un exemplu de conversie de tip implicită.
Exemplul 2: conversie automată de la dublu la int
//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; )
Ieșire
num_int = 9 num_double = 9.99
În program, am atribuit double
date unei int
variabile.
num_double = num_int;
Aici, double
valoarea este convertită automat int
în compilator înainte de a fi atribuită variabilei num_int. Acesta este, de asemenea, un exemplu de conversie de tip implicită.
Notă: Deoarece int
nu poate avea o parte zecimală, cifrele de după punctul zecimal sunt tăiate în exemplul de mai sus.
Pierderea datelor în timpul conversiei (reducerea conversiei)
După cum am văzut din exemplul de mai sus, conversia de la un tip de date la altul este predispusă la pierderea datelor. Acest lucru se întâmplă atunci când datele de un tip mai mare sunt convertite în date de tip mai mic.

C ++ Conversie explicită
Când utilizatorul schimbă manual datele de la un tip la altul, aceasta este cunoscută sub numele de conversie explicită . Acest tip de conversie este, de asemenea, cunoscut sub numele de turnare de tip .
Există trei moduri majore prin care putem folosi conversia explicită în C ++. Sunt:
- Turnare de tip C (cunoscută și sub numele de notație turnată )
- Notare funcțională (cunoscută și sub denumirea de tip vechi de tip C ++ )
- Tastați operatorii de conversie
Turnare tip C în stil
După cum sugerează și numele, acest tip de turnare este favorizată de limbajul de programare C . Este, de asemenea, cunoscut sub numele de notație turnată .
Sintaxa acestui stil este:
(data_type)expression;
De exemplu,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Distribuție în funcție de stil
De asemenea, putem folosi funcția ca notație pentru a arunca date de la un tip la altul.
Sintaxa acestui stil este:
data_type(expression);
De exemplu,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Exemplul 3: Tastați Casting
#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; )
Ieșire
num_double = 3,56 num_int1 = 3 num_int2 = 3
Am folosit atât conversia tipului stilului C, cât și modelul funcțional pentru conversia tipului și am afișat rezultatele. Deoarece îndeplinesc aceeași sarcină, ambele ne oferă aceeași ieșire.
Tastați Operatori de conversie
Pe lângă aceste piese turnate, C ++ are și patru operatori pentru conversia tipului. Sunt cunoscuți ca operatori de conversie de tip . Sunt:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Vom afla despre aceste distribuții în tutoriale ulterioare.
Tutoriale recomandate:
- C ++ șir la int și viceversa
- Șir C ++ pentru a pluti, dublu și invers