C++范围解析运算符::的使用
1.范围解析运算符的作用
范围解析运算符 :: 用于标识不同范围内使用的标识符。
2.范围解析运算符的使用
1)用于命名空间和类
namespace NamespaceA{
int x;
class ClassA {
public:
int x;
};
} int main() {
NamespaceA::x = ; NamespaceA::ClassA a1;
a1.x = ; }
2)没有范围限定符的表示全局命名空间。
namespace NamespaceA{
int x;
} int x; int main() {
int x;
x = ;
// 全局命名空间
::x = ; NamespaceA::x = ;
}
3)标识通过 using 指定成员的命名空间的命名空间
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 = ;
c_c.x = ;
}
4)标识嵌套的命名空间,标识嵌套的类
namespace NamespaceD{
namespace NamespaceD1{
int x;
}
} namespace NamespaceE{ class ClassE{
public:
class ClassE1{
public:
int x;
};
};
} int main() {
NamespaceD:: NamespaceD1::x = ;
NamespaceE::ClassE::ClassE1 e1;
e1.x = ;
}
5)调用类的静态成员
class ClassG {
public:
static int get_x() { return x;}
static int x;
}; int ClassG::x = ; int main() { int gx1 = ClassG::x;
int gx2 = ClassG::get_x();
}
6)用于枚举
enum EnumA{
First,
Second,
Third
}; int main() { EnumA enum_value = EnumA::First;
}
参考资料:https://msdn.microsoft.com/zh-cn/library/b451xz31.aspx
C++范围解析运算符::的使用的更多相关文章
- Python基础部分的疑惑解析——运算符和数据类型(5)
运算符 最后得到数值的: 算数运算符 赋值运算符 最后得到布尔值的: 成员运算符:in not in 逻辑运算符 and or 没有优先级就是按顺序执行 比较运算符 数据类型 1.整 ...
- C指针解析 ------ 运算符&和*
本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 & 是取地址运算符.* 叫做指针运算符或间接运算符.&a 的运算 ...
- python3精品解析运算符
算数运算符 +:两个对象相加 -:得到负数或者,或者一个数减去另一个数 *:两个数相乘或者是返回一个被重复若干次的字符串 /:5/2等于2.1 5//2=2(/有余数,//取整) %:取模(5%2=1 ...
- Python基础部分的疑惑解析——运算符和数据类型(3)
补充上一篇: #! /user/bin/env python 代码内声明这一个就可以用1.py类似的文件直接执行,但是要在linux内加权限, 不需要在前面加python 1.py执行了.文件可以 ...
- C++解析四-友员函数、内联函数、静态成员
友元函数 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员.尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数.友元可以是一个函 ...
- C++ 解析一
C++ 类和对象C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计.类是 C++ 的核心特性,通常被称为用户定义的类型.类用于指定对象的形式,它包含了数据表示法和用于处理数据 ...
- 雷林鹏分享:Ruby 运算符
Ruby 运算符 Ruby 支持一套丰富的运算符.大多数运算符实际上是方法调用.例如,a + b 被解释为 a.+(b),其中指向变量 a 的 + 方法被调用,b 作为方法调用的参数. 对于每个运算符 ...
- 关于C++ 命名空间Namespace 的解析
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...
- [c++] Templates
Template是编译时多态.所有的模板都是在编译时产生对应的代码,它没有面向对象中的虚表,无法实现动态多态. Function Template A function template is a p ...
随机推荐
- 【Qt】splitter
一段简单的切割窗体的程序: <span style="font-size:18px;">#include "mainwindow.h" #inclu ...
- 算法笔记_172:历届试题 波动数列(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度 ...
- 【CMS】DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP') in php.ini
DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recomm ...
- DIV布局之position详解
相对定位和绝对定位 定位标签:position 包含属性:relative(相对) absolute(绝对) 1.position:relative; 如果对一个元素进行相对定位,首先它将出现在它所在 ...
- Sqlite 复制表结构和数据
复制表结构 ; 复制表结构和数据 create table newTb as select * from oldTb:
- HDUOJ--Strange fuction
Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Mosquitto ---学习笔记
Mosquitto的安装,可以参见:https://mosquitto.org/download/ [基础配置]Mosquitto服务的配置文件为/etc/mosquitto/mosquitto.co ...
- libXext.so.6 libXp.so.6 libXt.so.6 is needed by openmotif21-2.1.30-11.el7.i686
# rpm -ivh openmotif21--.el7.i686.rpm error: Failed dependencies: libXext.so. -.el7.i686 libXp.so. - ...
- AP_创建标准发票后会计科目的变化(概念)
2014-06-04 Created By BaoXinjian 1. 创建Invoice,并查看所创建的科目
- DBA_实践指南系列4_Oracle Erp R12系统备份和恢复Backup(案例)
2013-12-04 Created By BaoXinjian