Конверзија типова Ц ++

У овом упутству ћемо научити о основама конверзије типа Ц ++ уз помоћ примера.

Ц ++ нам омогућава претварање података једне врсте у податке друге. Ово је познато као претварање типа.

У Ц ++ постоје две врсте претварања типова.

  1. Имплицитна конверзија
  2. Експлицитна конверзија (позната и као лијевање типова)

Имплицитна конверзија типа

Конверзија типа коју преводилац аутоматски врши је позната као имплицитна конверзија типа. Ова врста конверзије позната је и као аутоматска конверзија.

Погледајмо два примера имплицитне конверзије типова.

Пример 1: Конверзија из инт у доубле

 // 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; )

Оутпут

 нум_инт = 9 нум_доубле = 9

У програму смо променљивој доделили intподатке double.

 num_double = num_int;

Овде преводилац intаутоматски претвара вредност doubleу њу пре него што је додељује променљивој нум_доубле. Ово је пример имплицитне конверзије типа.

Пример 2: Аутоматско претварање из двоструког у инт

 //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; )

Оутпут

 нум_инт = 9 нум_доубле = 9,99

У програму смо променљивој доделили doubleподатке int.

 num_double = num_int;

Овде преводилац doubleаутоматски претвара вредност intу њу пре него што је додељена променљивој нум_инт. Ово је такође пример имплицитне конверзије типа.

Напомена: С обзиром intда не може имати децимални део, цифре иза децималне тачке су скраћене у горњем примеру.

Губитак података током конверзије (сужавање конверзије)

Као што смо видели из горњег примера, конверзија из једног типа података у други склона је губитку података. То се дешава када се подаци већег типа претварају у податке мањег типа.

Могући губитак података током конверзије типа

Ц ++ експлицитна конверзија

Када корисник ручно мења податке из једног у други тип, то је познато као експлицитна конверзија . Ова врста конверзије позната је и као ливење типа .

Постоје три главна начина на које можемо користити експлицитну конверзију у језику Ц ++. Су:

  1. Ливење у стилу Ц (такође познато и као нотација )
  2. Ознака функције (позната и под називом ливење старог типа Ц ++ )
  3. Оператори конверзије типова

Лијевање типа у стилу Ц

Као што само име сугерише, ова врста ливења је омиљен у Ц програмски језик . Такође је познат и као нотација лива .

Синтакса овог стила је:

 (data_type)expression;

На пример,

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

Ливење у стилу функције

Такође можемо користити функцију попут нотације за пребацивање података из једног типа у други.

Синтакса овог стила је:

 data_type(expression);

На пример,

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

Пример 3: Лијевање типа

 #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; )

Оутпут

 нум_доубле = 3,56 нум_инт1 = 3 нум_инт2 = 3

За конверзију типа користили смо и конверзију типа Ц и ливење у стилу функције и приказали резултате. Будући да обављају исти задатак, обојица нам дају исти резултат.

Оператори конверзије типова

Поред ове две врсте одливака, Ц ++ има и четири оператора за конверзију типова. Познати су као оператори за претварање типова . Су:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

О овим глумачким поставкама сазнаћемо у каснијим водичима.

Препоручени водичи:

  • Ц ++ стринг у инт и обратно
  • Ц ++ низ за плутање, удвостручавање и обрнуто

Занимљиви Чланци...