共用方式為


主要運算式

主要運算式是建置組塊的更複雜的運算式。 它們是常值、 名稱和範圍解析運算子所限定的名稱 (::)。 主要運算式可能會造成任何一種下列格式:

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

請參閱

參考

運算式的型別