Contenu du cours
Types de Données C++
Types de Données C++
Conversion de Type Explicite
Si vous traitez des variables de type int
, plutôt que de simples nombres dans le code, vous devez convertir la valeur d'une variable en double
ou float
. Cela peut être accompli en utilisant la syntaxe suivante :
main
#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 façons d'effectuer explicitement une conversion de type. Celle-ci est appelée conversion de style C :
main
#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 }
Bien que cette approche soit concise, elle n'indique pas clairement l'intention ou la nature de la conversion, ce qui peut entraîner des ambiguïtés et une utilisation abusive potentielle.
Il existe des opérateurs de conversion plus explicites et plus sûrs pour offrir un meilleur contrôle sur les conversions de type.
La plupart du temps, vous n'avez besoin que d'une static_conversion
. Nous ne discuterons pas en profondeur des autres conversions. Voici la syntaxe :
main
#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 ne couvrirons pas la différence entre tous ceux-ci. En général, static_cast
est préférable car il est plus restrictif et peut prévenir certains comportements inattendus avec des types de données complexes.
Merci pour vos commentaires !