C++ :: 的用法小结
2015-08-18 14:17
453 查看
:: 的用法小结:
用于将类内声明的静态数据成员在类外初始化;
用于将类内声明的函数成员在类外实现;
用于捞出继承时访问权限被改变的成员,使之还原为原来的权限;
继承时派生类新增了与基类同名的成员,由于同名屏蔽,从而使基类的成员被遮蔽,可用: :将被遮蔽的基类成员重见天日;
用于在类外或子类中访问不继承的静态成员;
用于区分不同名空间的标识符。
:: 的作用之一:恢复访问权
注意:
恢复时不可带类型名;( int A::get_XY(); 错)
只能恢复不可提升或降低访问权限;
当父类被恢复的函数重载时,将全都恢复;
父类中不同访问域的重载函数不能恢复;
若子类新增了与父类同名的成员,则父类同名的成员不可恢复。
:: 的作用之二:隐藏再现
用于将类内声明的静态数据成员在类外初始化;
用于将类内声明的函数成员在类外实现;
用于捞出继承时访问权限被改变的成员,使之还原为原来的权限;
继承时派生类新增了与基类同名的成员,由于同名屏蔽,从而使基类的成员被遮蔽,可用: :将被遮蔽的基类成员重见天日;
用于在类外或子类中访问不继承的静态成员;
用于区分不同名空间的标识符。
:: 的作用之一:恢复访问权
#include <iostream> using namespace std; class A { public: A(int xx = 1,int yy = 2){X=xx;Y=yy;} int get_XY(){return X*Y;} void put_XY(){cout << X << "*" << Y <<"="<< X*Y <<endl;} protected: int X,Y; }; class B:private A { public: B(int s,int xx,int yy):A(xx,yy),S(s){} //A::put_XY; A:: get_XY; void make_S(){put_XY();cout<<S<<endl;} private: int S; }; void main() { B b(3,5,6); b.get_XY(); //b.put_XY(); 还是private权限,不可以在类外被访问。 b.make_S(); }
注意:
恢复时不可带类型名;( int A::get_XY(); 错)
只能恢复不可提升或降低访问权限;
当父类被恢复的函数重载时,将全都恢复;
父类中不同访问域的重载函数不能恢复;
若子类新增了与父类同名的成员,则父类同名的成员不可恢复。
:: 的作用之二:隐藏再现
#include <iostream> using namespace std; class A { public: int X,Y; }; class B:public A { public: int Y,Z; }; void main() { B b; b.X= 1; b.Y= 2; b.A::Y= 3; b.Z= 4; }
相关文章推荐
- 用c++写2048
- C/C++数据类型的转换之终极无惑
- C/C++数据类型的转换之终极无惑
- 基于C语言的DB2数据库开发
- 解决Visual C++ 中相互包含头文件的问题
- c++ 11 新特性
- C/C++零基础教程,游戏开发入门
- C语言:链表的反向输出(反转链表+栈结构)
- 细数Python与C++的区别(更新中……)
- C语言判断文件是否存在
- Java与c++的一些同异
- Effective C++ 条款4 确定对象被使用前已被初始化
- [转]VC++操作Word
- 【Vijos P1007】绕钉子的长绳子 c++题解
- 3sum leetcode (15)
- C++堆内存和栈内存详解
- 解决C语言中生成的EXE文件执行后窗口消失方法
- C++的面向对象编程二
- C语言转义字符和格式控制符参考
- C++零基础教程游戏开发入门