Conversão de tipo C++
Conversão de tipo C++
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 para 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 conversão de tipo)
Conversão de tipo implícita
A conversão de tipo que é 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 de tipo implícita.
Exemplo 1:conversão de int para 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;
}
Saída
num_int = 9 num_double = 9
No programa, atribuímos um
int
dados para um double
variável.
num_double = num_int;
Aqui, o
int
valor é convertido automaticamente para double
pelo compilador antes de ser atribuído ao num_double variável. Este é um exemplo de conversão de tipo implícito. Exemplo 2:conversão automática de double para 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;
}
Saída
num_int = 9 num_double = 9.99
No programa, atribuímos um
double
dados para um int
variável.
num_double = num_int;
Aqui, o
double
valor é convertido automaticamente para int
pelo compilador antes de ser atribuído ao num_int variável. Este também é um exemplo de conversão de tipo implícito. Observação: Desde
int
não pode ter uma parte decimal, os dígitos após o ponto decimal são truncados no exemplo acima. Perda de dados durante a conversão (redução da conversão)
Como vimos no exemplo acima, a conversão de um tipo de dados para outro é propensa à perda de dados. Isso acontece quando dados de um tipo maior são convertidos em dados de um tipo menor.
Conversão explícita em 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 conversão de tipo .
Existem três maneiras principais pelas quais podemos usar a conversão explícita em C++. Eles são:
- Caixa de tipo de estilo C (também conhecida como notação de conversão )
- 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 de tipo estilo C
Como o nome sugere, esse tipo de conversão é favorecido 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;
Transmissão de estilo de função
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:conversão de tipo
#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;
}
Saída
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 exibiu os resultados. Como eles executam a mesma tarefa, ambos nos dão a mesma saída.
Operadores de conversão de tipo
Além dessas duas conversões de tipo, C++ também possui 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
- String C++ para float, double e vice-versa
Linguagem C