C++范围解析运算符::的使用
2016-05-26 15:49
465 查看
1.范围解析运算符的作用
范围解析运算符 :: 用于标识不同范围内使用的标识符。
2.范围解析运算符的使用
1)用于命名空间和类
2)没有范围限定符的表示全局命名空间。
3)标识通过 using 指定成员的命名空间的命名空间
4)标识嵌套的命名空间,标识嵌套的类
5)调用类的静态成员
6)用于枚举
参考资料:https://msdn.microsoft.com/zh-cn/library/b451xz31.aspx
范围解析运算符 :: 用于标识不同范围内使用的标识符。
2.范围解析运算符的使用
1)用于命名空间和类
namespace NamespaceA{ int x; class ClassA { public: int x; }; } int main() { NamespaceA::x = 1; NamespaceA::ClassA a1; a1.x = 2; }
2)没有范围限定符的表示全局命名空间。
namespace NamespaceA{ int x; } int x; int main() { int x; x = 0; // 全局命名空间 ::x = 1; NamespaceA::x = 2; }
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 = 3; c_c.x = 4; }
4)标识嵌套的命名空间,标识嵌套的类
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 ; }
5)调用类的静态成员
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(); }
6)用于枚举
enum EnumA{ First, Second, Third }; int main() { EnumA enum_value = EnumA::First; }
参考资料:https://msdn.microsoft.com/zh-cn/library/b451xz31.aspx
相关文章推荐
- C++面试笔记--const、sizeof
- C语言指针杂记
- Qt/C++ QSlider解决点击不能到该位置问题
- c++二叉树
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements
- c++中构造函数初始化的方法以及主要区别
- iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite
- C++标准模板库
- 如何打印出方法名和行号,并有条件地禁止的NSLog?
- C++实践参考:数组类模板
- C和C++编译器的函数名修饰规则
- C++实践参考:两个成员的类模板
- C++实践参考:排序函数模板
- C++面试笔记--宏定义
- C++ extern static
- 当析构函数遇到多线程 ── C++中线程安全的对象回调
- C++ string 用法详解
- acm c++ 练习中出现的错误类型
- C++的const类成员函数