Преобразование типов С++
Преобразование типов C++
В этом руководстве мы изучим основы преобразования типов C++ с помощью примеров.
C++ позволяет преобразовывать данные одного типа в данные другого типа. Это называется преобразованием типов.
В C++ существует два типа преобразования типов.
- Неявное преобразование
- Явное преобразование (также известное как преобразование типов)
Неявное преобразование типов
Преобразование типов, которое выполняется компилятором автоматически, называется неявным преобразованием типов. Этот тип преобразования также известен как автоматическое преобразование.
Давайте рассмотрим два примера неявного преобразования типов.
<час>Пример 1:преобразование из int в double
// Working of implicit type-conversion
#include <iostream>
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 <iostream>
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 <iostream>
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 и наоборот
Язык C