English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operadores++ Tutoriais Básicos

Operadores++ Controle de fluxo

Operadores++ Função

Operadores++ Array & String

Operadores++ Estrutura de dados

Operadores++ Classe & objeto

Operadores++ Ponteiros

Operadores++ Herança

Operadores++ Tutorial STL

Operadores++ Manual de referência

Operadores++ Conversão de tipo

Neste tutorial, vamos aprender C ++Fundamentos da conversão de tipo

Operadores ++Permite-nos converter dados de um tipo para outro. Isso é conhecido como conversão de tipo.

Operadores ++Existem dois tipos de conversões de tipo.

  1. Conversão implícita

  2. Conversão explícita (também conhecida como conversão de tipo forçada)

Conversões relacionadas: converter Operadores ++Conversão de String para int  Operadores ++ Conversão de String para float / double

Conversão implícita

A conversão de tipo feita automaticamente pelo compilador é chamada de conversão implícita. Este tipo de conversão também é conhecido comoConversão automática

Vamos ver dois exemplos de conversão implícita de tipo

exemplo1: Conversão de int para double

// Como funciona a conversão implícita de tipo
#include <iostream>
using namespace std;
int main() {
   // Atribuir um valor int a num_int
   int num_int = 9;
   // Declarar uma variável double
   double num_double;
 
   // Conversão implícita
   // Atribuir um valor int a uma variável double
   num_double = num_int;
   No translation needed as it's a placeholder.
   cout << "num_double = " << num_double << endl;
   return 0;
}

resultado de saída

No translation needed as it's a placeholder. 9
num_double = 9

No programa, já atribuímos dados int a uma variável double.

num_double = num_int;

Aqui, antes de atribuir um valor int à variável num_double, ela será automaticamente convertida para double pelo compilador. Este é um exemplo de conversão implícita de tipo.

exemplo2: Conversão automática de double para int

//Como funciona a conversão implícita de tipo
#include <iostream>
using namespace std;
int main() {
   int num_int;
   double num_double = 9.99;
   // Conversão implícita
   // Atribuir um valor double a uma variável int.
   No translation needed as it's a placeholder.
   No translation needed as it's a placeholder.
   cout << "num_double = " << num_double << endl;
   return 0;
}

resultado de saída

No translation needed as it's a placeholder. 9
num_double = 9.99

No translation needed as it's a placeholder.

num_double = num_int;

num_double = num_int;

aqui, antes de atribuir o valor double ao variável num_int, o compilador converte automaticamente. Isso é um exemplo de conversão implícita de tipo.note:

devido ao fato de que int não pode ter parte fracionária, no exemplo acima, os números após o ponto decimal foram truncados.

perda de dados durante a conversão (conversão de estreito)

como pode ser visto no exemplo acima, a conversão de um tipo de dados para outro tipo de dados pode facilmente causar perda de dados. Isso ocorre quando os dados de tipo maior são convertidos para dados de tipo menor.

Operadores ++quando o usuário muda manualmente os dados de um tipo para outro tipo, isso é conhecido como

perda de dados pode ocorrer durante a conversão de tipoquando o usuário muda manualmente os dados de um tipo para outro tipo, isso é conhecido comoconversão explícitaconversão de tipo forçada

podemos usar três métodos principais no C ++usado explicitamente. Eles são:

  1. conversão de tipo do tipo C (também conhecido como sinal de conversão)

  2. representação de função (também conhecido como antigo c++estilo de conversão de tipo)

  3. Também têm quatro operadores para conversão de tipo. Eles são chamados

conversão de estilo C

por nome, esse tipo de conversão é afetadodo linguagem de programação Cé também conhecida comorepresentação de conversão forçada

essa sintaxe é:

(data_type)expression;

por exemplo,

// inicialização de variável int
int num_int = 26;
// declaração de variável double
double num_double;
// conversão de int para double
num_double = (double)num_int;

conversão de estilo de função

também podemos usar funções semelhantes para converter dados de um tipo para outro tipo.

essa sintaxe é:

data_type(expression);

por exemplo,

// inicialização de variável int
int num_int = 26;
// declaração de variável double
double num_double;
// conversão de int para double
num_double = double(num_int);

exemplo3:conversão de tipo

#include <iostream>
using namespace std;
int main() {
    // inicialização de variável double
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;
    // conversão de estilo C de double para int
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;
    // estilo de conversão de função de double para int
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;
    return 0;
}

resultado de saída

num_double = 3.56
.1   num_int 3
.2   num_int 3

=UsamosConversão de Estilo CeConversão de Estilo de Função para Conversão de Tipo

Também têm quatro operadores para conversão de tipo. Eles são chamados

e exibir o resultado. Devido a eles executarem a mesma tarefa, ambos nos dão a mesma saída. ++Além dessas conversões de tipo, CTambém têm quatro operadores para conversão de tipo. Eles são chamadosOperadores de Conversão de Tipo

  • Eles são:

  • static_cast

  • dynamic_cast

  • const_cast

reinterpret_cast