Sdílet prostřednictvím


Primární výrazy

Primární výrazy jsou stavebními bloky složitějších výrazů. Mohou se jednat o literály, názvy a názvy kvalifikované operátorem rozlišení oboru (::). Primární výraz může mít některou z těchto forem:

primary-expression
literal
this
name
:: name ( expression )

A literal je konstantní primární výraz. Jeho typ závisí na formuláři specifikace. Další informace o zadávání literálů naleznete v tématu Literály .

Klíčové this slovo je ukazatel na instanci třídy. Je k dispozici v rámci nestatických členských funkcí a odkazuje na instanci třídy, ze které byla funkce vyvolána. Klíčové this slovo nelze použít mimo tělo funkce člena třídy.

Další informace o typu this ukazatele naleznete v tématu this ukazatel.

Operátor rozlišení oboru (::) následovaný názvem je primární výraz. Tyto názvy musí být jména v globálním rozsahu, ne názvy členů. Deklarace názvu určuje typ výrazu. Je to l-hodnota (to znamená, že se může objevit na levé straně výrazu přiřazení), pokud je deklarující název l-hodnota. Operátoru rozsahu rozlišení umožňuje odkazování na globální název, i když je tento název skrytý v aktuálním oboru. Příklad použití operátoru rozlišení oboru najdete v tématu Obor .

Výraz uzavřený v závorkách je primární výraz. Jeho typ a hodnota jsou identické s typem a hodnotou neparenthesizovaného výrazu. Je to l-hodnota, pokud je neparenthesizovaný výraz l-hodnota.

Příklady primárních výrazů zahrnují:

100 // literal
'c' // literal
this // in a member function, a pointer to the class instance
::func // a global function
::operator + // a global operator function
::A::B // a global qualified name
( i + 1 ) // a parenthesized expression

Všechny tyto příklady se považují za názvy a například primární výrazy v různých formách:

MyClass // an identifier
MyClass::f // a qualified name
operator = // an operator function name
operator char* // a conversion operator function name
~MyClass // a destructor name
A::B   // a qualified name
A<int> // a template id

Viz také

Typy výrazů