後置式
後置式は、1 次式、または後置演算子が 1 次式に続く式で構成されます。 次の表は、後置演算子の一覧です。
後置演算子
演算子名 |
演算子表記 |
---|---|
[ ] |
|
( ) |
|
type-name( ) |
|
. または –> |
|
++ |
|
–– |
次の構文は、可能な後置式について説明しています。
primary-expression
postfix-expression [ expression ]
postfix-expression ( expression-list<SUB>opt</SUB> )
simple-type-name ( expression-list<SUB>opt</SUB> )
postfix-expression . name
postfix-expression –> name
postfix-expression ++
postfix-expression ––
cast-keyword < typename > (expression )
typeid ( typename )
上の postfix-expression は、1 次式または別の後置式である可能性があります。 「1 次式」を参照してください。 後置式は左から右へグループ化されるため、次のように式を連結できます。
func(1)->GetValue()++
上の式では、func は 1 次式で、func(1) は関数後置式です。func(1)->GetData は、クラスのメンバーを指定する後置式です。func(1)->GetData() は、もう 1 つの関数後置式です。式全体は GetData の戻り値をインクリメントする後置式です。 全体として式の意味は、「引数として 1 を渡す関数を呼び出し、戻り値としてクラスへのポインターを取得します。 次に、そのクラスで GetValue() を呼び出し、返される値をインクリメントします。
前の式は、代入式です。つまり、これらの式の結果が右辺値である必要があります。
後置式のフォーム
simple-type-name ( expression-list )
コンストラクターの呼び出しを示します。 単純型名が基本型である場合、式リストは 1 つの式である必要があります。また、この式は、基本型への式の値のキャストを示します。 この型のキャスト式はコンストラクターを模倣します。 この形式は同じ構文を使用して構築されている基本型とクラスを使用するため、この形式はテンプレート クラスを定義する場合に特に便利です。
cast-keyword は、dynamic_cast、static_cast、または reinterpret_cast です。 詳細については、「dynamic_cast」、「static_cast」、および「reinterpet_cast」を参照してください。
typeid 演算子は、後置式と見なされます。 「typeid 演算子」を参照してください。