原始式

基本式は、より複雑な式のビルド ブロックです。 つまり、リテラル、名前、スコープ解決演算子 (::) で修飾された名前です。 基本式は次のいずれかの形式になります。

primary-expression
literal
this
name
:: name ( expression )

literal は定数基本式です。 その型は、リテラルの指定の形式によって決まります。 リテラルの指定の詳細については、「リテラル」を参照してください

this キーワード (keyword)は、クラスのインスタンスへのポインターです。 非静的メンバー関数内で使用でき、関数が呼び出されたクラスのインスタンスを指します。 this キーワードはクラス メンバー関数の本体の外部で使用することはできません。

ポインターの型の詳細については、ポインターを参照してくださいthisthis

名前の前のスコープ解決演算子 (::) は基本式です。 そのような名前は、メンバー名ではなく、グローバル スコープでの名前であることが必要です。 名前の宣言によって、式の型が決まります。 宣言名が左辺値である場合は、左辺値 (代入式の左辺になる式) です。 スコープ解決演算子を使用すると、グローバル名が現在のスコープでは隠されていても、その名前を参照できます。 スコープ解決演算子の使用例については、「スコープ」を参照してください。

かっこで囲まれた式は、プライマリ式です。 その型と値は、解析されていない式の型と値と同じです。 この式は、かっこで囲まれていない式が左辺値であれば、左辺値です。

次に示しているのは、基本式の例です。

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

これらは、考えられるすべての name、つまり基本式の、さまざまな形式の例です。

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

関連項目

式の型