- Opérateurs Composés
- Opérateur d'Expression
- Opérateur Return
- Opérateur Conditionnel if-else
- Opérateur Ternaire ?:
- Opérateur Switch
- Opérateur de Boucle while
- Opérateur de Boucle for
- Opérateur de Boucle do while
- Opérateur Break
- Opérateur Continue
- Matrix product operator
- Opérateur de Création d'Objet new
- Opérateur de Suppression d'Objet delete
Opérateur Ternaire ?:
La forme générale de l'opérateur ternaire est la suivante :
expression1 ? expression2 : expression3 |
Pour la première opérande - "expression1" - toute expression qui résulte en une valeur de type bool peut être utilisée. Si le résultat est vrai (true), alors l'opérateur définit par la seconde opérande, c'est à dire "expression2" est exécutée.
Si la première opérande est fausse (false), la troisième opérande - "expression3" est effectuée. Les seconde et troisième opérande, c'est à dire "expression2" et "expression3" doivent retourner des valeurs du même type et ne doivent pas retourner void type. Le résultat de l'exécution de l'opérateur conditionnel est le résultat de expression2 ou le résultat de expression3, suivant le résultat de expression1.
//--- différence normalisée entre les prix open et close pour le range d'une journée
|
Cette entrée est équivalente à :
double true_range;
|
Utilisation de l'Opérateur et Restrictions #
Suivant la valeur de "expression1", l'opérateur doit retourner l'une des deux valeurs - soit "expression2" ou "expression3". Il y a plusieurs limitations à ces expressions :
- Ne mélangez pas un type utilisateur avec un type simple ou avec une énumération. NULL peut être utilisé comme pointeur.
- Si les types des valeurs sont simples, l'opérateur sera du type maximum (voir Conversion de Type).
- Si l'une des valeurs est un énumération et que la seconde est d'un type numérique, l'énumération est remplacé par int et la deuxième règle est appliquée.
- Si les deux valeurs sont des énumérations, leurs types doivent être identiques et l'opérateur sera de type énumération.
Restrictions pour les types utilisateurs (classes ou structures) :
- Les types doivent être identiques ou l'un doit dériver de l'autre.
- Si les types ne sont pas identiques (héritage), alors l'enfant est implicitement converti dans le type du parent, c'est à dire que l'opérateur sera du type du parent.
- Ne mélangez pas un objet et un pointeur - les deux expressions doivent être soit des objets, soit des pointeurs. NULL peut être utilisé pour un pointeur.
Note
Faites attention lors de l'utilisation de l'opérateur conditionnel comme argument d'une fonction surchargée, car le type du résultat d'un opérateur conditionnel est défini au moment de la compilation du programme. Et ce type est déterminé comme étant le plus grand des types de "expression2" et "expression3".
Exemple :
void func(double d) { Print("argument double : ",d); }
|
Voir aussi
Initialisation des Variables, Portée de Visibilité et Cycle de Vie des Variables, Créer et Supprimer des Objets