php中的解析范围符,C++_深入解析C++编程中范围解析运算符的作用及使用,范围解析运算符 :: 用于标识和 - phpStudy...

本文详细介绍了C++编程中的范围解析运算符`::`,它用于消除不同范围内的标识符冲突。通过示例展示了如何在命名空间和类中使用该运算符,以及如何调用静态成员和区分范围的枚举值。同时,还解释了如何通过`using`指令来引用命名空间的成员。
摘要由CSDN通过智能技术生成

深入解析C++编程中范围解析运算符的作用及使用

范围解析运算符 :: 用于标识和消除在不同范围内使用的标识符。

语法

:: identifier class-name :: identifier namespace :: identifier enum class :: identifier enum struct :: identifier

备注identifier 可以是变量、函数或枚举值。

具有命名空间和类以下示例显示范围解析运算符如何与命名空间和类一起使用:

namespace NamespaceA{

int x;

class ClassA {

public:

int x;

};

}

int main() {

// A namespace name used to disambiguate

NamespaceA::x = 1;

// A class name used to disambiguate

NamespaceA::ClassA a1;

a1.x = 2;

}

没有范围限定符的范围解析运算符表示全局命名空间。

namespace NamespaceA{

int x;

}

int x;

int main() {

int x;

// the x in main()

x = 0;

// The x in the global namespace

::x = 1;

// The x in the A namespace

NamespaceA::x = 2;

}

你可以使用范围解析运算符来标识命名空间的成员,还可标识通过 using 指定成员的命名空间的命名空间。在下面的示例中,你可以使用 NamespaceC 限定 ClassB(尽管 ClassB 已在 NamespaceB 中声明),因为已通过 using 指令在 NamespaceC 中指定 NamespaceB。

namespace NamespaceB {

class ClassB {

public:

int x;

};

}

namespace NamespaceC{

using namespace B;

}

int main() {

NamespaceB::ClassB c_b;

NamespaceC::ClassB c_c;

c_b.x = 3;

c_c.x = 4;

}

可使用范围解析运算符链。在以下示例中,NamespaceD::NamespaceD1 将标识嵌套的命名空间 NamespaceD1,并且 NamespaceE::ClassE::ClassE1 将标识嵌套的类 ClassE1。

namespace NamespaceD{

namespace NamespaceD1{

int x;

}

}

namespace NamespaceE{

class ClassE{

public:

class ClassE1{

public:

int x;

};

};

}

int main() {

NamespaceD:: NamespaceD1::x = 6;

NamespaceE::ClassE::ClassE1 e1;

e1.x = 7 ;

}

具有静态成员必须使用范围解析运算符来调用类的静态成员。

class ClassG {

public:

static int get_x() { return x;}

static int x;

};

int ClassG::x = 6;

int main() {

int gx1 = ClassG::x;

int gx2 = ClassG::get_x();

}

具有区分范围的枚举区分范围的解析运算符还可以与区分范围的枚举枚举声明的值一起使用,如下例所示:

enum class EnumA{

First,

Second,

Third

};

int main() {

EnumA enum_value = EnumA::First;

}

相关阅读:

JavaScript实现搜索框的自动完成功能(一)

php修改文件上传限制方法汇总

Win7系统传真扫描功能不能正常使用的解决方法

MySql安装与配置方法(MySQL添加用户、删除用户与授权)

简单讲解AngularJS的Routing路由的定义与使用

最新制作ThinkPHP3.2.3完全开发手册

android工程下不能运行java main程序的解决方法

如何关闭Windows10的推送通知 关闭win10推送图文教程

javascript中使用正则表达式实现删除字符串中的前后空格

详解C语言编程中的函数指针以及函数回调

mac系统中自带的邮件程序怎么添加qq邮箱帐号?

Win8.1系统提示无法验证产品密钥解决教程

android4.0混淆XmlPullParser报错原因分析解决

Ubuntu软件中心安装应用时出现Debconf窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值