English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Gli operatori di conversione forzata sono operatori speciali che trasformano un tipo di dati in un altro tipo di dati. Gli operatori di conversione forzata sono unari, e la loro priorità è la stessa degli altri operatori unari.
La maggior parte dei compilatori C++ supporta la maggior parte degli operatori di conversione comuni:
(type) espressione
Dove type è il tipo di dati convertito. Di seguito è elencato altri tipi di operatori di conversione forzata supportati da C++:
const_cast<type> (expr): L'operatore const_cast viene utilizzato per modificare le proprietà const / volatile di un tipo. Oltre alle proprietà const o volatile, il tipo di destinazione deve essere uguale al tipo di origine. Questo tipo di conversione è principalmente utilizzato per operare sulle proprietà const degli oggetti trasmessi, può aggiungere proprietà const, o rimuoverle.
dynamic_cast<type> (expr): dynamic_cast esegue conversioni in tempo di esecuzione, verificando la validità della conversione. Se la conversione non viene eseguita, la conversione fallisce e l'espressione expr viene valutata come null. Quando dynamic_cast esegue conversioni dinamiche, type deve essere un puntatore di classe, un riferimento di classe o void*, se type è un tipo di puntatore di classe, allora expr deve essere un puntatore, se type è un riferimento, allora expr deve essere un riferimento.
reinterpret_cast<type> (expr): L'operatore reinterpret_cast cambia un puntatore in un altro tipo di puntatore. Può convertire un puntatore in un intero, o un intero in un puntatore.
static_cast<type> (expr): L'operatore static_cast esegue conversioni non dinamiche, senza controlli di sicurezza della classe in tempo di esecuzione. Ad esempio, può essere utilizzato per convertire un puntatore di classe base in un puntatore di classe derivata.
Tutti i operatori di conversione forzata elencati vengono utilizzati quando si utilizzano classi e oggetti. Ora, guardate l'esempio seguente per capire come si utilizza un operatore di conversione forzata semplice in C++. Copiate e incollate il seguente programma C++ nel file test.cpp, compilate e eseguite il programma.
#include <iostream> using namespace std; int main() { double a = 21.09399; float b = 10.20; int c; c = (int) a; cout << "Riga 1 - (int) a il valore è: " << c << endl; c = (int) b; cout << "Riga 2 - (int) b il valore è: " << c << endl; return 0; }
Quando il codice sopra viene compilato ed eseguito, produrrà i seguenti risultati:
Riga 1 - (int) il valore di b è: 21 Riga 2 - (int) il valore di b è: 10