次の方法で共有


主要な式

最初の式は複雑な式のビルド ブロックです。これらはリテラルスコープ解決演算子 () が :: 修飾すると名前です。プライマリ次の形式の式があるかも知れません :

literal
this
:: name
name 
( expression )

リテラルは 定数の式です。その型では特定のフォームによって異なります。リテラルの指定に関する完全な情報については リテラル を参照してください。

this のキーワードはクラス オブジェクトへのポインターです。この関数が呼び出されたクラスのインスタンスへの非静的メンバー関数という点で使用できます。this のキーワードはクラスのメンバー関数の本体の外部で使用することはできません。

this のポインターの型はthis のポインターを変更しない関数内の type *const (type がクラス名である場合は) です。次の例では this のメンバー関数宣言と形式です :

// 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 式の左辺値は左辺値です。

上で指定された主要な式の構文のコンテキスト内で 名前は クラスにのみ発生した名前の型が許可されていない前にスコープ解決演算子を使用すると names で説明されている構文のあらゆるを意味します。これはユーザー定義の変換関数の名前とデストラクターがあります。

主要な式の例は次のとおりです。:

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

参照

関連項目

式の型