主表達式
主表達式是更復雜的表達式的構造塊。它們是文本、名稱以及范圍解析運算符 (::) 限定的名稱。主表達式可以具有以下任一形式:
literalthis:: namename ( expression )
literal 是常量主表達式。其類型取決于其規范的形式。
this 關鍵字是指向類對象的指針。它在非靜態成員函數中可用,并指向為其調用函數的類的實例。 this 關鍵字只能在類成員函數體的外部使用。
this 指針的類型是未特別修改 this 指針的函數中的 type *const(其中 type 是類名)。以下示例演示成員函數聲明以及 this 的類型:
// expre_Primary_Expressions.cpp// compile with: /LDclass Example{public: void Func(); // * const this void Func() const; // const * const this void Func() volatile; // volatile * const this};范圍解析運算符 (::) 后跟名稱構成了主表達式。此類名稱必須是全局范圍內的名稱,而不是成員名稱。此表達式的類型由名稱的聲明決定。如果聲明的名稱是左值,則該類型是左值(即,它可以出現在賦值運算符表達式的左側)。范圍解析運算符允許引用全局名稱,即使該名稱隱藏在當前范圍中也如此。
用括號括起的表達式是與不帶括號的表達式具有相同的類型和值的主表達式。如果不帶括號的表達式是左值,則用括號括起的表達式也是左值。
在上面給出的主表達式語法的上下文中,name 表示為 name 描述的語法中的任何內容,不過,當在名稱前使用范圍解析運算符時,不允許使用只能在類中出現的名稱的類型。這包括用戶定義的轉換函數名稱和析構函數名稱。
主表達式的示例包括:
100 // literal'c' // literalthis // 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 // a identifierMyClass::f // a qualified nameoperator = // an operator function nameoperator char* // a conversion operator function name~MyClass // a destructor nameA::B // a qualified nameA<int> // a template id
后綴表達式
后綴表達式包含主表達式或者其中的后綴運算符跟在主表達式之后的表達式。 下表列出了后綴運算符。
后綴運算符
運算符名稱
運算符表示法
下標運算符
[ ]
函數調用運算符
( )
顯式類型轉換運算符
type-name ( )
成員訪問運算符
. 或
主站蜘蛛池模板:
黄龙县|
修武县|
嘉义市|
临沧市|
旬阳县|
上思县|
富民县|
壤塘县|
黎平县|
和林格尔县|
兴义市|
台南市|
垦利县|
纳雍县|
新疆|
香河县|
仁化县|
邵东县|
获嘉县|
西丰县|
五家渠市|
贺州市|
闻喜县|
兴和县|
卓尼县|
玉龙|
尚志市|
慈利县|
册亨县|
弥勒县|
通山县|
云浮市|
三门峡市|
新兴县|
阿荣旗|
长葛市|
甘孜县|
镇远县|
天门市|
贵港市|
长葛市|