[C++再学习系列] 可访问性问题
2012-11-13 19:03
232 查看
可访问性问题
C++ 通过 Private , protected , public 来控制成员的可访问性。Private 只能被该类的成员或友元使用;
Protected 能被该类或者派生类的成员或友元使用;
Public 能被外部访问。
我们知道派生类可对基类的任何同名虚函数进行重写,但是不能调用基类私有虚函数。不过,派生类却可以改变基类虚函数的访问性 。
Private 成员名字只对所属类的其他成员或友元来说是可访问的 ,而这里的其他成员也包括成员模板函数的任何显式特化 (任何成员模板都可以针对任何类型进行特化,即对特殊的类型使用特殊的内部实现。这个技巧可以用来访问私有成员)。同时。任何对某个成员具有访问性的代码都可以通过泄露该成员的指针 的方式将其的访问权限授予外界的任何代码!
Private 成员对于任何能够看到其所属类定义的代码来说都是可见的 。这意味着它的函数参数必须预先声明,另外任何私有成员都会参与名字查找和重载决议 ,因此可能会使调用变得无效或具有二义性。
相关文章推荐
- [C++再学习系列] 可访问性问题
- [C++再学习系列] 可访问性问题
- [C++再学习系列] STL容器删除操作总结
- C++学习总结系列--函数部分
- 【C++】学习小笔记系列-4-何时使用引用参数
- C++学习笔记--多重继承的问题
- [C++再学习系列] Using声明和指令的工作原理
- C++再学习系列:使用合理的引用参数实现接口的自说明
- [C++再学习系列] 模板函数的自定义点
- Linux 学习一 搭建环境系列之三 linux搭建django 以及搭建django时遇到的各种问题
- c++学习连载-插入排序及其遇到的问题
- C++学习问题
- [C++再学习系列] C++编译器的函数编译流程
- C/C++容易迷惑问题(也属经典问题),共同学习……
- 关于 TerminateProcess函数 在c++的进程中的学习而发现VS2008的编译安全问题
- Keras深度学习框架学习笔记系列(1)- IndentationError错误问题
- [C++再学习系列] STL容器删除操作总结
- 树莓派学习系列——使用C++来获取usb设备ID,效果同lsusb
- 递归算法学习系列之八皇后问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题