主要運算式
主要運算式是建置組塊的更複雜的運算式。 它們是常值、 名稱和範圍解析運算子所限定的名稱 (::)。 主要運算式可能會造成任何一種下列格式:
literal
this
:: name
name
( expression )
A 常值是常數主要運算式。 它的型別取決於其規格的形式。 請參閱常值如需指定常值的完整資訊。
這個關鍵字是類別物件的指標。 非靜態成員函式,並指到此函式叫用類別的執行個體中使用它。 這個關鍵字不適用於類別成員函式主體之外。
哪種這個指標位於type*** const** (其中type的類別名稱) 在不修改的函式內這個指標。 下列範例會顯示成員函式宣告和型別這個:
// 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
};
請參閱的 this 指標的型別 如需有關修改的型別 這個指標。
範圍解析運算子 (::) 後面加上名稱構成主要的運算式。 這種名稱必須是在全域範圍,而不是成員名稱的名稱。 這個運算式的型別取決於名稱的宣告。 它是左值 (也就是它可以出現在 [工作分派運算子運算式的左手邊) 宣告的名稱是否是左值。 範圍解析運算子可讓全域的名稱來參照到],即使該名稱隱藏在目前的範圍。 請參閱範圍如需如何使用範圍解析運算子的範例。
以括弧括住的運算式是主要運算式,其型別和值都完全相同的 unparenthesized 運算式。 如果 unparenthesized 運算式是左值,就是左值。
主要運算式語法,上面所列的內容中名稱表示在語法中所述的任何項目 名稱,不過,不允許使用範圍解析運算子時在名稱之前,只能出現在類別的名稱型別。 這包括使用者定義的轉換函式名稱和解構函式名稱。
主要運算式的範例包括:
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
下列範例會將被視為名稱,並因此主要運算式,以不同的形式:
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