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 intdado a uma doublevariável.
 num_double = num_int;
Aqui, o intvalor é convertido automaticamente doublepelo 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 doubledado a uma intvariável.
 num_double = num_int;
Aqui, o doublevalor é convertido automaticamente intpelo 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 intnã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.
 Possível perda de dados durante a conversão de tipo 
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_castdynamic_castconst_castreinterpret_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
 








