Conversione Implicita Dei Tipi
Scorri per mostrare il menu
La conversione di tipo avviene continuamente. Può essere una conversione implicita eseguita automaticamente dal compilatore, oppure una conversione esplicita, in cui si convertono esplicitamente i tipi nel codice.
main.cpp
1234567#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }
Nell'esempio, 6.5, un numero a virgola mobile, viene convertito implicitamente in int (operazione che avviene rimuovendo la parte decimale).
La conversione di tipo implicita si verifica quando il tipo di una variabile non corrisponde a quello atteso dal compilatore (ad esempio, quando si assegna un valore a int, il compilatore si aspetta un numero intero ed effettuerà una conversione di tipo se riceve un valore diverso).
- Frecce rosse indicano perdita di dati. Ad esempio, se convertiamo
floatinlong(oint), perderemo la parte decimale; - Frecce verdi indicano assenza di perdita di dati. Ad esempio, possiamo convertire in modo sicuro
intinlong, e il risultato rimane invariato; - Freccia gialla nella conversione da
long(oint) afloat(olong) significa che talvolta si verifica una perdita di dati a causa della precisione insufficiente difloat(olong).
main.cpp
1234567891011#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }
Un ulteriore esempio di conversione implicita dei tipi riguarda le operazioni +, -, *, /. Queste dovrebbero essere eseguite su variabili dello stesso tipo di dato. Se così non fosse, C++ effettua automaticamente la promozione del tipo. Ad esempio, int / double -> double / double.
Un altro caso in cui si può incontrare la conversione implicita dei tipi è nelle condizioni. Ad esempio, nell'istruzione if.
Questa si aspetta che la condizione sia di tipo bool. Tuttavia, grazie alla conversione implicita dei tipi, è possibile utilizzare altri tipi di dato come condizioni. Ecco un'immagine che mostra come vengono convertiti in bool:
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione