原文:http://blog.csdn.net/whz_zb/article/details/6843369

:: 的用法小结:

用于将类内声明的静态数据成员在类外初始化;
用于将类内声明的函数成员在类外实现;
用于捞出继承时访问权限被改变的成员,使之还原为原来的权限;
继承时派生类新增了与基类同名的成员,由于同名屏蔽,从而使基类的成员被遮蔽,可用: :将被遮蔽的基类成员重见天日;
用于在类外或子类中访问不继承的静态成员;
用于区分不同名空间的标识符。

:: 的作用之一:恢复访问权

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. A(int xx = 1,int yy = 2){X=xx;Y=yy;}
  7. int get_XY(){return X*Y;}
  8. void put_XY(){cout << X << "*" << Y <<"="<< X*Y <<endl;}
  9. protected:
  10. int X,Y;
  11. };
  12. class B:private A
  13. {
  14. public:
  15. B(int s,int xx,int yy):A(xx,yy),S(s){}
  16. //A::put_XY;
  17. A:: get_XY;
  18. void make_S(){put_XY();cout<<S<<endl;}
  19. private:
  20. int S;
  21. };
  22. void main()
  23. {
  24. B b(3,5,6);
  25. b.get_XY();
  26. //b.put_XY(); 还是private权限,不可以在类外被访问。
  27. b.make_S();
  28. }

注意:

恢复时不可带类型名;( int A::get_XY(); 错)

只能恢复不可提升或降低访问权限;

当父类被恢复的函数重载时,将全都恢复;

父类中不同访问域的重载函数不能恢复;

若子类新增了与父类同名的成员,则父类同名的成员不可恢复。

:: 的作用之二:隐藏再现

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. int X,Y;
  7. };
  8. class B:public A
  9. {
  10. public:
  11. int Y,Z;
  12. };
  13. void main()
  14. {
  15. B b;
  16. b.X= 1;
  17. b.Y= 2;
  18. b.A::Y= 3;
  19. b.Z= 4;
  20. }

:: 的作用之三:隐藏再现

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6. static int i;
  7. static void Add() { i++; }
  8. void out() { cout<<"static i = "<<i<<endl; }
  9. };
  10. int A::i= 10;
  11. class B:private A
  12. {
  13. public:
  14. A::out;
  15. };
  16. class C:public B
  17. {
  18. public:
  19. void f();
  20. };
  21. void C::f()
  22. {
  23. //私有继承,化公为私
  24. //i = 50; // 错
  25. //Add() ; // 错
  26. A:: i = 50;
  27. A:: Add();
  28. }
  29. void main()
  30. {
  31. A x;
  32. C y;
  33. x.Add();
  34. x.out();
  35. y.f();
  36. y.out();
  37. cout<< "static i = "<<A::i<<endl;
  38. };

C++ :: 的用法小结相关推荐

  1. oracle @spool,Oracle spool 用法小结

    Oracle spool 用法小结 转自:http://wallimn.javaeye.com/blog/472182 对于SPOOL 数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句 ...

  2. js push(),pop(),unshift(),shift()的用法小结

    js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容 ...

  3. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

  4. setscale方法的用法_基于BigDecimal.setScale的用法小结

    1. BigDecimal num1 = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失 2. BigDecimal num2 = new BigDecimal( ...

  5. java.nio.ByteBuffer用法小结

    转载自  java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...

  6. jsoup解析HTML用法小结

    转载自   jsoup解析HTML用法小结 使用HttpClient+jsoup做采集器有一段时间了,发现jsoup很好用,而且还有很多方便的东西都没怎么用上.于是想根据官网上的cookbook来对j ...

  7. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  8. Linux: chmod 和 chown用法小结

    chmod chmod指令是更改文件读写执行权限的. 文件权限可以通过ls -a或ll来看,在每个文件前有10个字符,第一个是d是文件夹,否则为一划.后面三组rwx,分别是读取,写入和执行的权限; 三 ...

  9. c++指针各种用法小结

    指针各种用法小结 1.int*p; 一般指针. 2.int (*p)[M]; p指向含有M个元素的一维数组,可指向每行含有M个元素的二维数组的一行(行指针). 3.int * p[M]; p是指针数组 ...

最新文章

  1. 中国AI科研产出全球第一 但引文影响力低
  2. Cisco Easy ***综合配置示例
  3. python推荐系统-不到40行代码用Python实现一个简单的推荐系统
  4. DeepID2+:Deeply Learned Attributes for Crowded Scene Understanding
  5. 潭州Java中级班(day_04)
  6. AUTOSAR从入门到精通100讲(四十八)-Lin通信协议栈分析两步走-LinTrcvLIN Driver
  7. 武汉计算机应用中职学校,武汉市中职学校计算机应用基础课程抽考.Doc
  8. 基于PyQt的扫雷游戏实现_下篇
  9. BDD敏捷开发入门与实战
  10. 虚拟桌面的备份恢复最佳实践 第二部分
  11. 语言速算24点的小窍门_2-3岁宝宝是语言发育引导期,对话式朗读促进表达,3招养出演讲家...
  12. python modbus tk 库_python modbus_tk模块学习笔记(rtu slaver例程)
  13. 开源视频平台:ViMP
  14. windows上搭建NFS服务器--haneWIN,Linux客户端挂载
  15. 基于java的超市管理系统设计(含源文件)
  16. electron app 模块说明
  17. R语言方差分析ANOVA
  18. HTML登录注册页面简单实现
  19. 基于51单片机的扫地小车,扫地机器人设计 主要功能有寻迹避障,来回清扫功能,往返清扫功能
  20. 02- pandas 数据库 (数据库)

热门文章

  1. 什么是机器人的五点校正法_样品定量检测怎样选择内标法和外标法!
  2. NeHe教程Qt实现——lesson10
  3. python struct
  4. ios开发判断字符串为空_【开发常识】这个问题,直接导致年终奖没了……(惨兮兮)...
  5. 3 账套升级u8_用友U8条码管理的应用对仓库有什么好处?
  6. rsa php前面,PHP使用非对称加密算法(RSA)
  7. 泉州服务器维修,泉州云服务器
  8. php如何检测数组是否存在,php – 如何检查数组元素是否存在?
  9. jq的form data中保留加号_使用Fourier+EMD水管中传播的单频音波进行滤波(Python)...
  10. c语言关于office运行库,VC++运行库32/64位合集下载|微软常用运行库合集(2015- 2021版)...