Výrazy přípony
Výrazy přípony jsou tvořeny primárními výrazy nebo výrazy, ve kterých příponové operátory následují primární výraz.Příponové operátory jsou uvedeny v následující tabulce.
Příponové operátory
Název operátoru |
Zápis operátoru |
---|---|
[ ] |
|
( ) |
|
název-typu( ) |
|
. nebo –> |
|
++ |
|
–– |
Následující syntaxe popisuje možné výrazy přípony:
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 )
postfix-expression uvedený výše může být primární výraz nebo jiný výraz přípony. Další informace naleznete v tématu primární výrazy. Výrazy přípony seskupují zleva doprava, takže umožňují následující zřetězení výrazů:
func(1)->GetValue()++
Ve výše uvedeném výrazu je func primární výraz, func(1) je výraz přípony funkce, func(1)->GetData je výraz přípony určující člena třídy, func(1)->GetData() je jiný výraz přípony funkce a celý výraz je výraz přípony zvyšující návratovou hodnotu funkce GetData. Význam výrazu jako celek je "volání funkce func předání hodnoty 1 jako argument a získání ukazatele na třídu jako návratovou hodnotu. Poté volání funkce GetValue() dané třídy a poté zvýšení vrácené hodnoty.
Výrazy uvedené výše jsou výrazy přiřazení, což znamená, že výsledkem těchto výrazů musí být p-hodnota.
Tvar výrazu přípony
simple-type-name ( expression-list )
označuje volání konstruktoru. Pokud je simple-type-name základní typ, seznam výrazů musí být jeden výraz a tento výraz označuje přetypování hodnoty výrazu na základní typ. Tento typ výrazu přetypování napodobuje konstruktor. Vzhledem k tomu, že tento tvar umožňuje základním typům a třídám, aby byly konstruovány pomocí stejné syntaxe, je tento tvar obzvláště užitečný při definování tříd šablon.
cast-keyword je jedním z dynamic_cast, static_cast nebo reinterpret_cast. Další informace naleznete v tématech dynamic_cast, static_cast a reinterpet_cast.
Operátor typeid se považuje za výraz přípony. Další informace naleznete v tématu Operátor typeid.