Conversion de Type Explicite
Glissez pour afficher le menu
Si vous travaillez avec des variables de type int, plutôt qu'avec de simples nombres dans le code, il est nécessaire de convertir la valeur d'une variable en double ou float. Cela peut être réalisé en utilisant la syntaxe suivante :
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; }
Il existe plusieurs méthodes pour effectuer explicitement une conversion de type. Celle-ci est appelée conversion de style 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 }
Bien que cette approche soit concise, elle n’indique pas clairement l’intention ou la nature de la conversion, ce qui peut entraîner une ambiguïté et un usage inapproprié.
Il existe des opérateurs de conversion plus explicites et plus sûrs permettant un meilleur contrôle des conversions de types.
La plupart du temps, seule une static_conversion est nécessaire. Les autres conversions ne seront pas abordées en détail. Voici la syntaxe :
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 }
Nous n'aborderons pas la différence entre toutes ces méthodes. En général, static_cast est préférable car il est plus restrictif et peut éviter certains comportements inattendus avec des types de données complexes.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion