Partager via


Priorité des opérateurs et d'associativité

Le langage C++ inclut tous les opérateurs C et ajoute plusieurs nouveaux opérateurs.Les opérateurs spécifient une évaluation à effectuer sur une des opérations suivantes :

  • un opérande (opérateur unaire)

  • deux opérandes (opérateur binaire)

  • Trois opérandes (opérateur conditionnel ternaire)

Les opérateurs suivent une priorité identité, qui définit l'ordre d'évaluation des expressions qui contient ces opérateurs.Les opérateurs s'associent à l'expression sur leur gauche ou l'expression sur leur droite ; cela est appelé « associativité ». Le tableau suivant indique la priorité et l'associativité des opérateurs C++ (de la plus élevée à la plus faible priorité).Les opérateurs dans le même segment du tableau sont prioritaires égale et sont évalués dans l'ordre donné dans une expression à moins qu'explicitement converti parenthèses.

Priorité des opérateurs C++ et d'associativité

Opérateur

nom ou signification

Associativité

::

Résolution de portée

Aucun

 

 

 

.

Sélection de membre (objet)

De gauche à droite

–>

Sélection de membre (pointeur)

De gauche à droite

[ ]

indice de tableau

De gauche à droite

( )

initialisation de membre d'appel de fonction

De gauche à droite

++

Post-incrémentation

De gauche à droite

––

Post-décrémentation

De gauche à droite

typeid( )

nom de type

De gauche à droite

const_cast

cast de type (conversion)

De gauche à droite

dynamic_cast

cast de type (conversion)

De gauche à droite

reinterpret_cast

cast de type (conversion)

De gauche à droite

static_cast

cast de type (conversion)

De gauche à droite

 

 

 

sizeof

taille d'objet ou de type

De droite à gauche

++

Pré-incrémentation

De droite à gauche

––

Pré-décrémentation

De droite à gauche

~

Complément à 1

De droite à gauche

!

NOT logique

De droite à gauche

Le moins unaire

De droite à gauche

+

unaire plus

De droite à gauche

&

adresse

De droite à gauche

*

Adressage indirect

De droite à gauche

new

créez l'objet

De droite à gauche

delete

Supprimez l'objet

De droite à gauche

( )

Cast

De droite à gauche

 

 

 

.*

pointeur vers membre (objets)

De gauche à droite

–>*

pointeur vers membre (pointeurs)

De gauche à droite

 

 

 

*

Multiplication

De gauche à droite

/

Division

De gauche à droite

%

Modulo

De gauche à droite

 

 

 

+

Addition

De gauche à droite

Soustraction

De gauche à droite

 

 

 

<<

Décalage vers la gauche

De gauche à droite

>>

Décalage vers la droite

De gauche à droite

 

 

 

<

Inférieur à

De gauche à droite

>

Supérieur à

De gauche à droite

<=

Inférieur ou égal à

De gauche à droite

>=

Supérieur ou égal à

De gauche à droite

 

 

 

==

Égalité

De gauche à droite

!=

Inégalité

De gauche à droite

 

 

 

&

Opération de bits AND

De gauche à droite

 

 

 

^

Opération OR exclusive au niveau du bit

De gauche à droite

 

 

 

|

Opération OR inclusive au niveau du bit

De gauche à droite

 

 

 

&&

AND logique

De gauche à droite

 

 

 

||

OR logique

De gauche à droite

 

 

 

expr1 ? expr2 : expr3

Conditionnel

De droite à gauche

 

 

 

=

Assignation

De droite à gauche

*=

Assignation de multiplication

De droite à gauche

/=

Assignation de Division

De droite à gauche

%=

Assignation de modulo

De droite à gauche

+=

Assignation d'addition

De droite à gauche

–=

Assignation de soustraction

De droite à gauche

<<=

Assignation de décalage vers la gauche

De droite à gauche

>>=

Assignation de décalage vers la droite

De droite à gauche

&=

Opération de bits AND peut-être

De droite à gauche

|=

Inclusifs de bits OR peut-être

De droite à gauche

^=

Opération de bits OR exclusive peut-être

De droite à gauche

 

 

 

throwexpr

expression throw

De droite à gauche

 

 

 

,

Virgule

De gauche à droite

Voir aussi

Référence

Opérateurs C++

Surcharge d'opérateur