L'auteur a beaucoup réfléchi aux différences entre l'opérateur de conversion de type explicite et le livre C++ Primer et a fourni des exemples plus significatifs. Veuillez le comprendre attentivement.
Opérateur de conversion de type
Regardez l'exemple suivant :
Ceci est le prototype d'une classe plurielle , Définit un opérateur de conversion de type pour le type double. Avec lui, vous pouvez l'utiliser comme suit :
Le résultat de sortie est le suivant :
complex n'est pas L'opérateur de sortie est pris en charge, le compilateur s'efforce donc de convertir c1 en un type double puis de le sortir. Jusqu'ici, tout va bien.
Voulez-vous vraiment convertir en double ?
Regardez à nouveau le code suivant :
Si d'après les mathématiques D'un point de vue, il devrait produire 2,23606. Mais en fait, ce code ne peut même pas être compilé. La raison en est que le compilateur dispose de deux options pour ce code : l'une consiste à convertir c1 en un double puis à ajouter 1 ; l'autre consiste à convertir 1 en un nombre complexe (1+0i) puis à effectuer une addition complexe.
Besoin d'une idée d'un programmeur.
Opérateur de conversion de type explicite
Afin d'éliminer toute ambiguïté, une solution consiste à utiliser explicite pour désactiver la conversion de type double implicite. Le code est le suivant :
La conversion de type implicite ne pouvant pas être effectuée, le code suivant provoquera une erreur de compilation :
Ce n'est pas un gros problème, car il est difficile de dire si la conversion en double sortie est correcte ou non. Le code a fourni la fonction de sortie au pluriel grâce à la surcharge de l'opérateur de sortie.
Le résultat est le suivant :
C'est ce que nous voulons vraiment !
Point supplémentaire
Si vous le souhaitez, vous pouvez également l'encoder comme ceci :
Retrouvez cet article utile? S'il vous plaît, partagez-le avec plus de personnes.
Recommandations associées :
Opérateurs HTML, conversion de type
Conversion implicite et explicite personnalisée C#
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!