В этом руководстве мы узнаем об основах преобразования типов 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: автоматическое преобразование из 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 ++. Они есть:
- Приведение типов в стиле 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
Мы узнаем об этих приведениях в следующих уроках.
Рекомендуемые учебные пособия:
- Строка C ++ в int и наоборот
- Строка C ++ для float, double и наоборот