1.范围解析运算符的作用
范围解析运算符 :: 用于标识不同范围内使用的标识符。

2.范围解析运算符的使用
1)用于命名空间和类

  1. namespace NamespaceA{
  2. int x;
  3. class ClassA {
  4. public:
  5. int x;
  6. };
  7. }
  8.  
  9. int main() {
  10. NamespaceA::x = ;
  11.  
  12. NamespaceA::ClassA a1;
  13. a1.x = ;
  14.  
  15. }

2)没有范围限定符的表示全局命名空间。

  1. namespace NamespaceA{
  2. int x;
  3. }
  4.  
  5. int x;
  6.  
  7. int main() {
  8. int x;
  9. x = ;
  10. // 全局命名空间
  11. ::x = ;
  12.  
  13. NamespaceA::x = ;
  14. }

3)标识通过 using 指定成员的命名空间的命名空间

  1. namespace NamespaceB {
  2. class ClassB {
  3. public:
  4. int x;
  5. };
  6. }
  7.  
  8. namespace NamespaceC{
  9. using namespace B;
  10.  
  11. }
  12. int main() {
  13. NamespaceB::ClassB c_b;
  14. NamespaceC::ClassB c_c;
  15.  
  16. c_b.x = ;
  17. c_c.x = ;
  18. }

4)标识嵌套的命名空间,标识嵌套的类

  1. namespace NamespaceD{
  2. namespace NamespaceD1{
  3. int x;
  4. }
  5. }
  6.  
  7. namespace NamespaceE{
  8.  
  9. class ClassE{
  10. public:
  11. class ClassE1{
  12. public:
  13. int x;
  14. };
  15. };
  16. }
  17.  
  18. int main() {
  19. NamespaceD:: NamespaceD1::x = ;
  20. NamespaceE::ClassE::ClassE1 e1;
  21. e1.x = ;
  22. }

5)调用类的静态成员

  1. class ClassG {
  2. public:
  3. static int get_x() { return x;}
  4. static int x;
  5. };
  6.  
  7. int ClassG::x = ;
  8.  
  9. int main() {
  10.  
  11. int gx1 = ClassG::x;
  12. int gx2 = ClassG::get_x();
  13. }

6)用于枚举

  1. enum EnumA{
  2. First,
  3. Second,
  4. Third
  5. };
  6.  
  7. int main() {
  8.  
  9. EnumA enum_value = EnumA::First;
  10. }

参考资料:https://msdn.microsoft.com/zh-cn/library/b451xz31.aspx

C++范围解析运算符::的使用的更多相关文章

  1. Python基础部分的疑惑解析——运算符和数据类型(5)

    运算符 最后得到数值的: 算数运算符 赋值运算符 最后得到布尔值的: 成员运算符:in   not in 逻辑运算符    and   or   没有优先级就是按顺序执行 比较运算符 数据类型 1.整 ...

  2. C指针解析 ------ 运算符&和*

    本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 & 是取地址运算符.* 叫做指针运算符或间接运算符.&a 的运算 ...

  3. python3精品解析运算符

    算数运算符 +:两个对象相加 -:得到负数或者,或者一个数减去另一个数 *:两个数相乘或者是返回一个被重复若干次的字符串 /:5/2等于2.1 5//2=2(/有余数,//取整) %:取模(5%2=1 ...

  4. Python基础部分的疑惑解析——运算符和数据类型(3)

    补充上一篇: #! /user/bin/env python   代码内声明这一个就可以用1.py类似的文件直接执行,但是要在linux内加权限, 不需要在前面加python 1.py执行了.文件可以 ...

  5. C++解析四-友员函数、内联函数、静态成员

    友元函数 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员.尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数.友元可以是一个函 ...

  6. C++ 解析一

    C++ 类和对象C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计.类是 C++ 的核心特性,通常被称为用户定义的类型.类用于指定对象的形式,它包含了数据表示法和用于处理数据 ...

  7. 雷林鹏分享:Ruby 运算符

    Ruby 运算符 Ruby 支持一套丰富的运算符.大多数运算符实际上是方法调用.例如,a + b 被解释为 a.+(b),其中指向变量 a 的 + 方法被调用,b 作为方法调用的参数. 对于每个运算符 ...

  8. 关于C++ 命名空间Namespace 的解析

    使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...

  9. [c++] Templates

    Template是编译时多态.所有的模板都是在编译时产生对应的代码,它没有面向对象中的虚表,无法实现动态多态. Function Template A function template is a p ...

随机推荐

  1. java 笔试之在线模拟

    网站地址: https://www.nowcoder.com

  2. java正则表达式简介

    Java的正则表达式讲解:(为了能看清,本文正则表达式用中文的句号代替英文句点) 1 英文句点符号:匹配单个任意字符. eg: 表达式”t.o  可以匹配:tno,t#o,teo等等.不可以匹配:tn ...

  3. 笔试题之ejb

    ejb部分 1.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别. EJB包括Session Bean. ...

  4. win10 切换 简体/繁体中文

  5. EXCEPTION-TOMCAT

      CreateTime--2016年10月24日16:22:12Author:Marydon声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇到 ...

  6. KnockoutJS + My97DatePicker

    如何将Knockoutjs和其他脚本库结合使用?这里给出一个Knockoutjs与my97datepicker配合使用的例子,例子中使用了ko的自定义绑定功能: ko.bindingHandlers. ...

  7. HTTP协议是如何通信的

    一.什么是HTTP协议 HTTP协议是HyperText Transfer Protocol的缩写,即超文本传输协议.是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何 ...

  8. Windows下安装OpenSSL及其使用

    方法一: Windows binaries can be found here: http://www.slproweb.com/products/Win32OpenSSL.html You can ...

  9. OpenStack 网络:Neutron 初探

    OpenStack Neutron 网络模型 OpenStack nova-network 独立成为单独的组件 Neutron 后,形象的网络模型的多平面网络.混合平面私有网络.如图 3,图 4,图 ...

  10. 用JSON-server模拟REST API

    来源于: 用JSON-server模拟REST API(一) 安装运行 用JSON-server模拟REST API(二) 动态数据 用JSON-server模拟REST API(三) 进阶使用 在开 ...