Udostępnij za pośrednictwem


Wyrażenia podstawowe

Wyrażenia podstawowe są blokami konstrukcyjnymi bardziej złożonych wyrażeń.Są one literały, nazwy i nazwy kwalifikowanej przez podmiot gospodarczy zakres rozdzielczości (::).Wyrażenie podstawowy może mieć jedną z następujących form:

literal
this
:: name
name 
( expression )

A literału jest podstawowym wyrażeniem stałym.Jego typ zależy od formularza jej specyfikację.Zobacz literały Aby uzyskać pełne informacje o określaniu literałów.

To słowo kluczowe jest wskaźnik do obiektu klasy.Jest ona dostępna w ramach funkcji niestatycznego członka i punkty do instancji klasy, dla którego wywołano funkcję.To poza ciałem funkcji składowej klasy nie można użyć słowa kluczowego.

Typ to wskaźnik jest type*** const** (gdzie type jest nazwą klasy) wewnątrz funkcji nie jest konkretnie modyfikowanie to wskaźnik. Poniższy przykład przedstawia Członkowskich deklaracje funkcji i rodzajów 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
};

Zobacz typu tego wskaźnika Aby uzyskać więcej informacji dotyczących modyfikowania typu to wskaźnik.

Operator zakresu rozdzielczość (::) następuje nazwa stanowi podstawowy wyrażenie.Takie nazwy muszą być nazwy w zakresie globalnym, a nie nazwy składników.Typy to wyrażenie jest określane przez deklarację nazwę.Jest wartością l (to znaczy, że może być wyświetlany na lewej stronie wyrażenia operatorem przypisania) jeśli deklarujący nazwa jest l wartość.Operator zakresu rozdzielczości pozwala globalnego nazwę mowa, nawet, jeśli nazwa ta jest ukryta w bieżącym zakresie.Zobacz zakres na przykład można użyć operatora zakres rozdzielczości.

Wyrażenie w nawiasach jest podstawowym wyrażenie, którego typ i wartość są identyczne z tymi wyrażenie unparenthesized.Jeśli wyrażenie unparenthesized jest wartością l jest l wartość.

W kontekście składni wyrażeń podstawowych podane powyżej Nazwa oznacza coś w składni opisane dla nazwy, chociaż za pomocą operatora zakres rozdzielczości przed nazwą, typów nazw, które mogą występować wyłącznie w klasa nie jest dozwolone.Obejmuje to nazwy funkcja zdefiniowana przez użytkownika konwersja i nazwy destruktor.

Wyrażenia podstawowe przykłady:

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

Poniższe przykłady są pod uwagę wszystkie nazwyi stąd podstawowego wyrażenia, w różnych formach:

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

Zobacz też

Informacje

Typy wyrażeń