Expressions en mode mixte en C ++

C ++ vous permet de mélanger les types de variables en une seule expression. Autrement dit, vous êtes autorisé à ajouter un nombre entier double précision valeur à virgule flottante. Dans l'expression ci-dessous, par exemple, nValue1 est autorisé à être un int:

// Dans l'expression suivante la valeur de nValue1 // est converti en un double avant d'effectuer la // assignmentint nValue1 = 1-nValue1 + 1.0-

Expression dans laquelle les deux opérandes ne sont pas du même type est appelé un expression en mode mixte. Les expressions en mode mixte génèrent une valeur dont le type est égal au plus à même de deux opérandes. Dans ce cas, nValue1 est converti en un double avant le calcul produit. De même, l'expression d'un type ne peut être affectée à une variable d'un type différent, comme dans l'état suivant:




// Dans l'affectation suivante, toute la partie // nombre de fVariable est stocké dans nVariabledouble dVariable = 1,0 int nVariable-nVariable = dVariable-

Vous pouvez perdre la précision ou la plage si la variable sur le côté gauche de l'affectation est plus petit. Dans l'exemple précédent, C ++ tronque la valeur de dVariable avant de le ranger dans nVariable.

Conversion d'un type de plus grande valeur dans un type de valeur inférieure est appelé rétrogradation, tandis que la conversion des valeurs dans la direction opposée comme cela est connu promotion. Les programmeurs disent que la valeur de int variable nVariable1 est promu à un double dans des expressions telles que les suivantes:

int nVariable1 = 1 double dVariable = nVariable1-

Expressions en mode mixte ne sont pas une bonne idée. Éviter de forcer C ++ pour faire vos conversions pour vous.


» » » » Expressions en mode mixte en C ++