Neste tutorial, aprenderemos sobre os fundamentos da conversão de tipo C ++ com a ajuda de exemplos.
C ++ nos permite converter dados de um tipo em outro. Isso é conhecido como conversão de tipo.
Existem dois tipos de conversão de tipo em C ++.
- Conversão implícita
- Conversão explícita (também conhecida como fundição de tipo)
Conversão de tipo implícita
A conversão de tipo feita automaticamente pelo compilador é conhecida como conversão de tipo implícita. Esse tipo de conversão também é conhecido como conversão automática.
Vejamos dois exemplos de conversão implícita de tipo.
Exemplo 1: conversão de int para duplo
// 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; )
Resultado
num_int = 9 num_double = 9
No programa, atribuímos um int
dado a uma double
variável.
num_double = num_int;
Aqui, o int
valor é convertido automaticamente double
pelo compilador antes de ser atribuído à variável num_double. Este é um exemplo de conversão de tipo implícita.
Exemplo 2: conversão automática de double para 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; )
Resultado
num_int = 9 num_double = 9,99
No programa, atribuímos um double
dado a uma int
variável.
num_double = num_int;
Aqui, o double
valor é convertido automaticamente int
pelo compilador antes de ser atribuído à variável num_int. Este também é um exemplo de conversão de tipo implícita.
Observação: como int
não pode ter uma parte decimal, os dígitos após a vírgula são truncados no exemplo acima.
Perda de dados durante a conversão (restringindo a conversão)
Como vimos no exemplo acima, a conversão de um tipo de dados para outro está sujeita à perda de dados. Isso acontece quando dados de um tipo maior são convertidos em dados de um tipo menor.

Conversão explícita de C ++
Quando o usuário altera manualmente os dados de um tipo para outro, isso é conhecido como conversão explícita . Esse tipo de conversão também é conhecido como fundição de tipo .
Existem três maneiras principais pelas quais podemos usar a conversão explícita em C ++. Eles são:
- Fundição do tipo C (também conhecido como notação de elenco )
- Notação de função (também conhecida como conversão de tipo de estilo C ++ antigo )
- Operadores de conversão de tipo
Fundição Tipo C
Como o nome sugere, este tipo de fundição é favorecida pela linguagem de programação C . Também é conhecido como notação de elenco .
A sintaxe para este estilo é:
(data_type)expression;
Por exemplo,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;
Fundição de estilo funcional
Também podemos usar a função como notação para converter dados de um tipo para outro.
A sintaxe para este estilo é:
data_type(expression);
Por exemplo,
// initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);
Exemplo 3: Tipo de Fundição
#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; )
Resultado
num_double = 3,56 num_int1 = 3 num_int2 = 3
Usamos a conversão de tipo de estilo C e a conversão de estilo de função para conversão de tipo e exibimos os resultados. Como eles realizam a mesma tarefa, ambos fornecem a mesma saída.
Operadores de conversão de tipo
Além desses dois tipos de fundição, C ++ também tem quatro operadores para conversão de tipo. Eles são conhecidos como operadores de conversão de tipo . Eles são:
static_cast
dynamic_cast
const_cast
reinterpret_cast
Aprenderemos sobre esses elencos em tutoriais posteriores.
Tutoriais recomendados:
- String C ++ para int e vice-versa
- Cadeia de caracteres C ++ para flutuar, dupla e vice-versa