У овом упутству ћемо научити о основама конверзије типа Ц ++ уз помоћ примера.
Ц ++ нам омогућава претварање података једне врсте у податке друге. Ово је познато као претварање типа.
У Ц ++ постоје две врсте претварања типова.
- Имплицитна конверзија
- Експлицитна конверзија (позната и као лијевање типова)
Имплицитна конверзија типа
Конверзија типа коју преводилац аутоматски врши је позната као имплицитна конверзија типа. Ова врста конверзије позната је и као аутоматска конверзија.
Погледајмо два примера имплицитне конверзије типова.
Пример 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
да не може имати децимални део, цифре иза децималне тачке су скраћене у горњем примеру.
Губитак података током конверзије (сужавање конверзије)
Као што смо видели из горњег примера, конверзија из једног типа података у други склона је губитку података. То се дешава када се подаци већег типа претварају у податке мањег типа.

Ц ++ експлицитна конверзија
Када корисник ручно мења податке из једног у други тип, то је познато као експлицитна конверзија . Ова врста конверзије позната је и као ливење типа .
Постоје три главна начина на које можемо користити експлицитну конверзију у језику Ц ++. Су:
- Ливење у стилу Ц (такође познато и као нотација )
- Ознака функције (позната и под називом ливење старог типа Ц ++ )
- Оператори конверзије типова
Лијевање типа у стилу Ц
Као што само име сугерише, ова врста ливења је омиљен у Ц програмски језик . Такође је познат и као нотација лива .
Синтакса овог стила је:
(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
О овим глумачким поставкама сазнаћемо у каснијим водичима.
Препоручени водичи:
- Ц ++ стринг у инт и обратно
- Ц ++ низ за плутање, удвостручавање и обрнуто