C++:主表达式

C++主表达式详解
本文介绍了C++中的主表达式,包括常量主表达式、this关键字、范围解析运算符以及括号表达式。主表达式是构建复杂表达式的基础,涉及到类对象指针、全局名称引用和表达式的左值特性。文章提供了详细解释和示例。

C++:主表达式

简介

主表达式是更复杂的表达式的构造块。 它们可能是由范围解析运算符限定的文本、名称和名称 ::。 主表达式可以具有以下任一形式:

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

literal 是常量主表达式。 其类型取决于其规范的形式。 有关指定文本的完整信息,请参阅 文本 。

this 关键字是指向类对象的指针。 它在非静态成员函数中可用。 它指向为其调用函数的类的实例。 this 关键字不能在类成员函数体的外部使用。

指针的类型 this 为 type * const (其中 type 是不专门修改指针的函数中的类名称) this 。 下面的示例演示了成员函数声明和类型 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 ,请参阅 this 指针。

范围解析运算符 (:😃 后跟名称是主表达式。 此类名称必须是全局范围内的名称,而不是成员名称。 表达式的类型由名称的声明决定。 它是一个左值 (也就是说,它可以出现在赋值表达式的左侧) 如果声明名称是左值。 范围解析运算符允许引用全局名称,即使该名称隐藏在当前范围中也如此。 有关如何使用范围解析运算符的示例,请参阅 范围 。

括在括号中的表达式是主表达式。 其类型和值与 unparenthesized 表达式的类型和值相同。 如果 unparenthesized 表达式是左值,则它是左值。

主表达式的示例包括:

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

这些示例都是所有 名称,在各种形式下都是这样的主表达式:

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

该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处,本文章博客地址:https://blog.youkuaiyun.com/it_cplusplus/article/details/118884962

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值