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

转换类型C++

In questo tutorial, impareremo le basi della conversione di tipo in C ++ con esempi.

C ++ ci permette di convertire i dati di un tipo in un altro tipo. Questo viene chiamato conversione di tipo.

In C ++ ci sono due tipi di conversioni di tipo.

  1. Conversione implicita

  2. Conversione esplicita (noto anche come casting)

Conversioni correlate: convertire 转换字符串为intC++  Conversione di stringa C ++ in float / double

Conversione implicita di tipo

La conversione di tipo effettuata automaticamente dal compilatore viene chiamata conversione implicita di tipo. Questo tipo di conversione viene anche chiamatoConversione automatica.

Vediamo due esempi di conversione implicita di tipo.

Esempio 1: Conversione da int a double

// Come funziona la conversione implicita di tipo
#include <iostream>
using namespace std;
int main() {
   // Assegnare un valore int a num_int
   int num_int = 9;
   // Dichiarare una variabile double
   double num_double;
 
   // Conversione implicita
   // Assegnare un valore int a una variabile double
   num_double = num_int;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   return 0;
}

risultato di output

num_int = 9
num_double = 9

Nel programma, abbiamo assegnato un valore int a una variabile double.

num_double = num_int;

In questo caso, prima di assegnare un valore int a una variabile num_double, il compilatore lo convertirà automaticamente in double. Questo è un esempio di conversione implicita di tipo.

Esempio 2: Conversione automatica da double a int

// Come funziona la conversione implicita di tipo
#include <iostream>
using namespace std;
int main() {
   int num_int;
   double num_double = 9.99;
   // Conversione implicita
   // Assegnare un valore double a una variabile int
   num_int = num_double;
   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;
   return 0;
}

risultato di output

num_int = 9
num_double = 9.99

Nel programma, abbiamo assegnato un valore double a una variabile int.

num_double = num_int;

Prima di assegnare un valore double a una variabile num_int, il compilatore lo convertirà automaticamente in int. Questo è un esempio di conversione implicita di tipo.

Attenzione:Poiché int non può avere una parte decimale, nel esempio sopra, i numeri decimali sono stati troncati.

perdita di dati durante la conversione (conversione a conversione stretta)

Dal esempio sopra, si può vedere che la conversione da un tipo di dati a un altro tipo di dati è facile causare la perdita di dati. Questo accade quando i dati di tipo più grande vengono convertiti in dati di tipo più piccolo.

potrebbe verificarsi la perdita di dati durante la conversione di tipo

conversione esplicita C++

quando l'utente modifica manualmente i dati da un tipo all'altro, si chiamaconversione esplicita. Questo tipo di conversione è anche noto comeconversione di tipo forzato.

Possiamo utilizzare tre metodi principali per utilizzare le conversioni esplicite nel C++. Sono loro:

  1. conversione di tipo forzato di stile C (noto anche come simbolo di conversione forzata)

  2. rappresentazione della funzione (noto anche come vecchio stile C++)

  3. 运算符类型转换

conversione di stile C

come si può intuire, questo tipo di conversione è influenzato daconversione di stile C del linguaggio Cè anche noto comesintassi di conversione forzata.

La sintassi di questo tipo è:

(data_type)expression;

ad esempio,

// inizializzazione della variabile int
int num_int = 26;
// dichiarazione della variabile double
double num_double;
// conversione da int a double
num_double = (double)num_int;

conversione di funzione

Possiamo anche utilizzare funzioni simili per convertire i dati da un tipo all'altro.

la sintassi di questo tipo è:

data_type(expression);

ad esempio,

// inizializzazione della variabile int
int num_int = 26;
// dichiarazione della variabile double
double num_double;
// conversione da int a double
num_double = double(num_int);

esempio 3: conversione di tipo

#include <iostream>
using namespace std;
int main() {
    // inizializzazione della variabile double
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;
    // conversione di stile C da double a int
    int num_int1 = (int)num_double;
    cout << "num_int1 = " << num_int1 << endl;
    // conversione di funzione da double a int
    int num_int2 = int(num_double);
    cout << "num_int2 = " << num_int2 << endl;
    return 0;
}

risultato di output

num_double = 3.56
num_int1   = 3
num_int2   = 3

我们使用转换类型风格C风格转换类型函数样式并显示结果。由于它们执行相同的任务,因此两者都给我们相同的输出。

运算符类型转换

除了这两个类型转换外,C++还具有四个用于类型转换的运算符。它们被称为运算符类型转换。他们是:

  • static_cast

  • dynamic_cast

  • const_cast

  • reinterpret_cast

将在以后的教程中了解这些强制转换。