Преобразуване на типове C ++

В този урок ще научим за основите на преобразуването на типове C ++ с помощта на примери.

C ++ ни позволява да конвертираме данни от един тип в този на друг. Това е известно като преобразуване на типа.

Има два вида преобразуване на типа в C ++.

  1. Неявно преобразуване
  2. Изрично преобразуване (известно също като леене на тип)

Неявно преобразуване на типа

Преобразуването на типа, което се извършва автоматично от компилатора, е известно като неявно преобразуване на тип. Този тип преобразуване е известен още като автоматично преобразуване.

Нека разгледаме два примера за неявно преобразуване на тип.

Пример 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 ++. Те са:

  1. Кастинг от тип C (известен също като отливка )
  2. Функционална нотация (известна също като леене на стария тип C ++ )
  3. Оператори за преобразуване на типове

Тип кастинг в стил 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 и обратно
  • С ++ низ за плаващ, двоен и обратно

Интересни статии...