В този урок ще научим за основите на преобразуването на типове C ++ с помощта на примери.
C ++ ни позволява да конвертираме данни от един тип в този на друг. Това е известно като преобразуване на типа.
Има два вида преобразуване на типа в C ++.
- Неявно преобразуване
- Изрично преобразуване (известно също като леене на тип)
Неявно преобразуване на типа
Преобразуването на типа, което се извършва автоматично от компилатора, е известно като неявно преобразуване на тип. Този тип преобразуване е известен още като автоматично преобразуване.
Нека разгледаме два примера за неявно преобразуване на тип.
Пример 1: Преобразуване от int към double
// 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; )
Изход
num_int = 9 num_double = 9
В програмата сме присвоили int
данни на double
променлива.
num_double = num_int;
Тук int
стойността автоматично се преобразува double
в компилатора, преди да бъде присвоена на променливата num_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; )
Изход
num_int = 9 num_double = 9.99
В програмата сме присвоили double
данни на int
променлива.
num_double = num_int;
Тук double
стойността автоматично се преобразува int
в компилатора, преди да бъде присвоена на променливата num_int. Това също е пример за неявно преобразуване на тип.
Забележка: Тъй като int
не може да има десетична част, цифрите след десетичната запетая се съкращават в горния пример.
Загуба на данни по време на преобразуване (стесняване на преобразуването)
Както видяхме от горния пример, преобразуването от един тип данни в друг е склонно към загуба на данни. Това се случва, когато данните от по-голям тип се преобразуват в данни от по-малък тип.

Изрично преобразуване на C ++
Когато потребителят ръчно променя данните от един тип в друг, това е известно като изрично преобразуване . Този тип преобразуване е известен още като отливане на типове .
Има три основни начина, по които можем да използваме изрично преобразуване в C ++. Те са:
- Кастинг от тип C (известен също като отливка )
- Функционална нотация (известна също като леене на стария тип C ++ )
- Оператори за преобразуване на типове
Тип кастинг в стил C
Както подсказва името, този тип леене се радва на подкрепата на езика C за програмиране . Известно е още като отливка .
Синтаксисът за този стил е:
(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; )
Изход
num_double = 3,56 num_int1 = 3 num_int2 = 3
Използвахме както преобразуване на тип C стил, така и кастинг в стил функция за преобразуване на тип и показахме резултатите. Тъй като те изпълняват една и съща задача, и двете ни дават еднакви резултати.
Оператори за преобразуване на типове
Освен тези два отливки на типа, C ++ има и четири оператора за преобразуване на типа. Те са известни като оператори за преобразуване на типове . Те са:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Ще научим за тези отливки в по-късните уроци.
Препоръчани уроци:
- С ++ низ към int и обратно
- С ++ низ за плаващ, двоен и обратно