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

C++ Conversión de tipo

En este tutorial, aprenderemos C con ejemplos ++Conocimientos básicos de conversión de tipo

C ++Permite que convirtamos datos de un tipo a otro. Esto se llama conversión de tipo.

C ++Hay dos tipos de conversión de tipo.

  1. Conversión implícita

  2. Conversión explícita (también conocida como conversión de tipo forzado)

Conversión relacionada: convertir C ++Conversión de String a int  C ++ Conversión de String a float / double

Conversión implícita de tipo

La conversión de tipo realizada automáticamente por el compilador se llama conversión implícita de tipo. Este tipo de conversión también se conoce comoConversión automática

Vamos a ver dos ejemplos de conversión implícita de tipo.

ejemplo1:Conversión de int a double

// Cómo funciona la conversión implícita de tipo
#include <iostream>
usando el espacio de nombres std;
int main() {
   // Asignar un valor de tipo int a num_int
   int num_int = 9;
   // Declarar una variable de tipo double
   double num_double;
 
   // Conversión implícita
   // Asignar un valor de tipo int a una variable de tipo double
   num_double = num_int;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   devolver 0;
}

resultado de salida

num_int = 9
num_double = 9

En el programa, hemos asignado datos de tipo int a una variable de tipo double.

num_double = num_int;

Aquí, antes de asignar un valor de tipo int a la variable num_double, el compilador lo convierte automáticamente a double. Este es un ejemplo de conversión implícita de tipo.

ejemplo2:Conversión automática de double a int

//Cómo funciona la conversión implícita de tipo
#include <iostream>
usando el espacio de nombres std;
int main() {
   int num_int;
   double num_double = 9.99;
   // Conversión implícita
   // Asignar un valor de tipo double a una variable de tipo int
   num_int = num_double;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   devolver 0;
}

resultado de salida

num_int = 9
num_double = 9.99

En el programa, hemos asignado datos de tipo double a una variable de tipo int.

num_double = num_int;

Aquí, antes de asignar el valor de double a la variable num_int, el compilador lo convertirá automáticamente a int. Esto también es un ejemplo de conversión implícita de tipo.

Nota:debido a que int no puede tener parte fraccionaria, por lo que en el ejemplo anterior, los números después del punto decimal se truncaron.

pérdida de datos durante la conversión (conversión de ancho estrecho)

como se puede ver en el ejemplo anterior, la conversión de un tipo de datos a otro tipo de datos es fácil de causar pérdida de datos. Esto ocurre cuando los datos de tipo más grande se convierten a datos de tipo más pequeño.

puede ocurrir pérdida de datos durante la conversión de tipo

C ++conversión explícita

cuando el usuario cambia manualmente los datos de un tipo a otro, se llamaconversión explícita。Este tipo de conversión también se llamaconversión de tipo forzado

Podemos usar tres métodos principales en C ++se utiliza explícitamente en la conversión. Son:

  1. conversión de tipo forzada de estilo C (también conocida como símbolo de conversión forzada)

  2. representación de función (también conocida como antiguo c++de estilo de conversión de tipo)

  3. Operadores de conversión de tipo

conversión de estilo C

como se dice, este tipo de conversión está sujeto ala conversión de estilo de C del lenguaje de programación Ctambién conocida comorepresentación de conversión forzada

La sintaxis de este estilo es:

(data_type)expression;

por ejemplo,

// inicialización de variable int
int num_int = 26;
// declaración de variable double
double num_double;
// conversión de int a double
num_double = (double)num_int;

conversión de estilo de función

También podemos usar funciones con similitudes para convertir datos de un tipo a otro。

la sintaxis de este tipo es:

data_type(expression);

por ejemplo,

// inicialización de variable int
int num_int = 26;
// declaración de variable double
double num_double;
// conversión de int a double
num_double = double(num_int);

ejemplo3:conversión de tipo

#include <iostream>
usando el espacio de nombres std;
int main() {
    // inicialización de variable double
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;
    // conversión de estilo C de double a int
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;
    // estilo de función de conversión de double a int
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;
    devolver 0;
}

resultado de salida

num_double = 3.56
.1   num_int 3
.2   num_int 3

=UsamosConversión de estilo CyConversión de estilo de función para realizar conversión de tipo,

Operadores de conversión de tipo

Y muestra los resultados. Debido a que realizan la misma tarea, ambos nos dan la misma salida. ++Además de estos dos operadores de conversión de tipo, COperadores de conversión de tipoSon:

  • static_cast

  • dynamic_cast

  • const_cast

  • reinterpret_cast

Entenderemos estas conversiones forzadas en futuros tutoriales.