Sdílet prostřednictvím


Primární výrazy

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

literal
this
:: name
name 
( expression )

A literál je konstantní primární výraz.Jeho typ závisí na formuláři specifikace.Viz literály kompletní informace o určení literály.

Této klíčové slovo je ukazatel na objekt třídy.Je k dispozici v rámci funkce členů nestatické a odkazuje na instanci třídy, pro které byla vyvolána funkce.Této vně těla funkce člen třídy nelze použít klíčové slovo.

Typ této je ukazatel type*** const** (kde type je název třídy) v rámci funkce úpravy není konkrétně této ukazatel. Následující příklad ukazuje členské funkce prohlášení a typy této:

// expre_Primary_Expressions.cpp
// compile with: /LD
class Example
{
public:
    void Func();          //  * const this
    void Func() const;    //  const * const this
    void Func() volatile; //  volatile * const this
};

Viz typu Tento ukazatel Další informace o změně typu této ukazatel.

Operátor oboru rozlišení (::) následuje název představuje primární výraz.Tyto názvy musí být názvy v globálním rozsahem nejsou názvy členů.Prohlášení o název určen typ tohoto výrazu.Je l hodnota (tj, může se zobrazit na levé straně výraz operátor přiřazení) je-li deklarující název l hodnota.Operátor oboru rozlišení umožňuje globální název odkazuje, i když tento název je skrytá v aktuálním oboru.Viz oboru příklad použití rozlišení oboru operátor.

Výraz uzavřený v závorkách je primární výraz, jehož typ a hodnoty jsou stejné jako výraz unparenthesized.Pokud je výraz unparenthesized l hodnota je l hodnota.

V rámci primární výraz syntaxe uvedené výše název znamená cokoli v syntaxi popisu pro názvy, i když použijete operátor oboru rozlišení před název typy názvů, které může dojít pouze v rámci třídy není povoleno.To zahrnuje uživatelem definovaný převod funkce názvy a názvy destruktoru.

Příklady primární výrazy:

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

Následující příklady jsou všechny považovány za názvya tedy primární výrazy, v různých formách:

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

Viz také

Referenční dokumentace

Typy výrazů