Conversione di Tipo Esplicita
Scorri per mostrare il menu
Se si lavora con variabili di tipo int, invece che semplicemente con numeri nel codice, è necessario convertire il valore di una variabile in double o float. Questo può essere realizzato utilizzando la seguente sintassi:
main.cpp
12345678910#include <iostream> int main() { int num1 = 9; int num2 = 4; std::cout << "No conversion: " << num1 / num2 << std::endl; std::cout << "With conversion: " << (double)num1 / num2 << std::endl; }
Esistono diversi modi per eseguire esplicitamente la conversione di tipo. Questo metodo è chiamato conversione in stile C:
main.cpp
123456789101112#include <iostream> int main() { float num = 6.5; std::cout << (int)num << std::endl; // 6.5 to `int` is 6 std::cout << (bool)num << std::endl; // 6.5 to `bool` is true // Or std::cout << int(num) << std::endl; // 6.5 to `int` is 6 std::cout << bool(num) << std::endl; // 6.5 to `bool` is true }
Sebbene questo approccio sia conciso, non indica chiaramente l'intento o la natura della conversione, il che può portare ad ambiguità e potenziali usi impropri.
Esistono operatori di cast più espliciti e sicuri che offrono un controllo migliore sulle conversioni di tipo.
Nella maggior parte dei casi, è sufficiente utilizzare una static_conversion. Non approfondiremo altri tipi di cast. Ecco la sintassi:
main.cpp
12345678#include <iostream> int main() { float num = 6.5; std::cout << static_cast<int>(num) << std::endl; // 6.5 to `int` is 6 std::cout << static_cast<bool>(num) << std::endl; // 6.5 to `bool` is true }
Non tratteremo la differenza tra tutti questi. In generale, static_cast è preferibile poiché è più restrittivo e può prevenire comportamenti inattesi con tipi di dati complessi.
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