Conversie tip C ++

Î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 ++.

  1. Conversie implicită
  2. 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 intdate unei doublevariabile.

 num_double = num_int;

Aici, intvaloarea 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 doubledate unei intvariabile.

 num_double = num_int;

Aici, doublevaloarea 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 intnu 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.

Posibile pierderi de date în timpul conversiei de tip

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:

  1. Turnare de tip C (cunoscută și sub numele de notație turnată )
  2. Notare funcțională (cunoscută și sub denumirea de tip vechi de tip C ++ )
  3. 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

Articole interesante...