Преобразование типов в C ++
Опубликовано: 3 Декабря, 2021
Приведение типа - это в основном преобразование одного типа в другой. Есть два типа преобразования типов:
- Неявное преобразование типов Также известно как «автоматическое преобразование типов».
- Выполняется компилятором самостоятельно, без какого-либо внешнего триггера со стороны пользователя.
- Обычно имеет место, когда в выражении присутствует более одного типа данных. В таком состоянии происходит преобразование типа (продвижение типа), чтобы избежать потери данных.
- Все типы данных переменных обновляются до типа данных переменной с наибольшим типом данных.
bool -> char -> short int -> int -> беззнаковое int -> длинное -> беззнаковое -> long long -> float -> double -> long double
- Неявные преобразования могут потерять информацию, знаки могут быть потеряны (когда signed неявно преобразуется в unsigned), и может произойти переполнение (когда long long неявно преобразуется в float).
Пример неявного преобразования типа:
// An example of implicit conversion
#include <iostream>
using
namespace
std;
int
main()
{
int
x = 10;
// integer x
char
y =
'a'
;
// character c
// y implicitly converted to int. ASCII
// value of 'a' is 97
x = x + y;
// x is implicitly converted to float
float
z = x + 1.0;
cout <<
"x = "
<< x << endl
<<
"y = "
<< y << endl
<<
"z = "
<< z << endl;
return
0;
}
Выход:х = 107 у = а г = 108
- Явное преобразование типа : этот процесс также называется приведением типа и определяется пользователем. Здесь пользователь может привести результат к определенному типу данных.
В C ++ это можно сделать двумя способами:
- Преобразование путем присваивания: это делается путем явного определения требуемого типа перед выражением в скобках. Это также можно рассматривать как принудительное забросание.
Синтаксис:
(тип) выражение
где type указывает тип данных, в который преобразуется окончательный результат.
Пример:
// C++ program to demonstrate
// explicit type casting
#include <iostream>
using
namespace
std;
int
main()
{
double
x = 1.2;
// Explicit conversion from double to int
int
sum = (
int
)x + 1;
cout <<
"Sum = "
<< sum;
return
0;
}
Выход:Сумма = 2
- Преобразование с использованием оператора Cast: оператор Cast - это унарный оператор, который заставляет один тип данных преобразовываться в другой тип данных.
C ++ поддерживает четыре типа приведения типов:- Статическая трансляция
- Dynamic Cast
- Const Cast
- Переосмыслить актерский состав
Пример:
#include <iostream>
using
namespace
std;
int
main()
{
float
f = 3.5;
// using cast operator
int
b =
static_cast
<
int
>(f);
cout << b;
}
Выход:3
- Преобразование путем присваивания: это делается путем явного определения требуемого типа перед выражением в скобках. Это также можно рассматривать как принудительное забросание.
Преимущества преобразования типов:
- Это делается для того, чтобы воспользоваться преимуществами определенных функций иерархий типов или представлений типов.
- Это помогает вычислять выражения, содержащие переменные разных типов данных.
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .