Преобразование типов 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: автоматическое преобразование из double в 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; )

Вывод

 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-стиль литья

Как следует из названия, этот тип отливки благоприятствует язык программирования . Это также известно как обозначение приведения .

Синтаксис этого стиля:

 (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

Мы узнаем об этих приведениях в следующих уроках.

Рекомендуемые учебные пособия:

  • Строка C ++ в int и наоборот
  • Строка C ++ для float, double и наоборот

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