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 in virgola mobile, viene convertito implicitamente in int (operazione che avviene rimuovendo la parte decimale).
La conversione implicita di tipo 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 e, se riceve qualcos'altro, eseguirà una conversione di tipo).
- 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 a volte 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 altro esempio di conversione implicita dei tipi sono 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. Ma grazie alla conversione implicita dei tipi, possiamo passare 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