Partager via


Expressions suffixées

Les expressions suffixées se composent d'expressions primaires ou d'expressions dans lesquelles les opérateurs suffixés suivent une expression primaire. Les opérateurs suffixés sont répertoriées dans le tableau suivant.

Opérateurs suffixés

Nom d'opérateur

Notation de l'opérateur

Opérateur d'indice

[ ]

Opérateur d'appel de fonction

( )

Opérateur de conversion de type explicite

type-name( )

Opérateur d'accès aux membres

. ou –>

Opérateur d'incrément suffixé

++

Opérateur de décrémentation suffixé

––

La syntaxe suivante décrit les expressions suffixées possibles :

primary-expression 
postfix-expression [ expression ] 
postfix-expression ( expression-list<SUB>opt</SUB> ) 
simple-type-name ( expression-list<SUB>opt</SUB> ) 
postfix-expression . name 
postfix-expression –> name 
postfix-expression ++ 
postfix-expression –– 
cast-keyword < typename > (expression ) 
typeid ( typename )

L'expression postfix-expression ci-dessus peut être une expression primaire ou une autre expression suffixée. Consultez Expressions primaires. Les expressions suffixées sont regroupées de gauche à droite. Elles peuvent ainsi être chaînées les unes aux autres comme suit :

func(1)->GetValue()++

Dans l'expression ci-dessus, func est une expression primaire, func(1) est une expression de fonction suffixée, func(1)->GetData est une expression suffixée spécifiant un membre de la classe, func(1)->GetData() est une autre expression de fonction suffixée et l'expression entière est une expression suffixée incrémentant la valeur de retour de GetData. L'expression entière signifie : Appeler fonction passant 1 comme argument et obtenir un pointeur vers une classe comme valeur de retour. Appeler ensuite GetValue() sur cette classe, puis incrémenter la valeur retournée.

Les expressions répertoriées ci-dessus sont des expressions d'assignation, ce qui signifie que le résultat de ces expressions doit être une r-value.

Forme de l'expression suffixée

simple-type-name ( expression-list )

indique l'appel du constructeur. Si le nom-type-simple est un type fondamental, la liste d'expressions doit être une expression unique, et cette expression montre un cast de la valeur de l'expression au type fondamental. Ce type d'expression de cast simule un constructeur. Cette forme permet aux classes et aux types fondamentaux d'être construits à l'aide de la même syntaxe. Elle est donc particulièrement utile lorsque vous définissez des classes de modèles.

Le mot clé cast figure dans dynamic_cast, dans static_cast ou dans reinterpret_cast. Vous pouvez obtenir des informations supplémentaires dans dynamic_cast, static_cast et reinterpet_cast.

L'opérateur typeid est considéré comme une expression suffixée. Consultez Opérateur typeid.

Voir aussi

Référence

Types d'expressions