後置運算式
後置運算式包含主要運算式,或後置運算子後面接著主要運算式的運算式。 下表列出後置運算子。
後置運算子
運算子名稱 |
運算子標記法 |
---|---|
[ ] |
|
( ) |
|
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 可以是主要運算式或其他後置運算式。請參閱主要運算式。後置運算式由左至右分組,因此可讓運算式鏈結在一起,如下所示:
func(1)->GetValue()++
上述運算式中,func 是一個主要運算式,func(1) 是一個函式後置運算式,func(1)->GetData 是指定類別成員的後置陳述式,func(1)->GetData() 是另一個函式後置運算式,然後,整個運算式是一個會將 GetData 傳回值遞增的後置陳述式。整個運算式的意義是傳遞 1 做為呼叫 func 的引數,並取得類別的指標做為傳回值。然後呼叫該類別的 GetValue(),再將傳回的值遞增。
以上列出的運算式為指派運算式,表示這些運算式的結果必須是右值。
後置運算式格式
simple-type-name ( expression-list )
表示建構函式的引動過程。如果 simple-type-name 是一個基本類型,則運算式清單必須是單一運算式,而這個運算式表示將運算式的值轉型為基本類型。此種轉型運算式會模擬建構函式。由於這個格式允許使用相同的語法建構基本類型和類別,因此該格式在定義樣板類別時會特別有用。
cast-keyword 是其中一個 dynamic_cast、static_cast 或 reinterpret_cast。詳細資訊可以在 dynamic_cast、static_cast 和 reinterpet_cast 中找到。
typeid 運算子會視為是後置運算式。請參閱 typeid 運算子。