博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C++再学习系列] 可访问性问题
阅读量:7099 次
发布时间:2019-06-28

本文共 612 字,大约阅读时间需要 2 分钟。

C++通过Private,protected,public来控制成员的可访问性。

Private 只能被该类的成员或友元使用;

Protected 能被该类或者派生类的成员或友元使用;

Public 能被外部访问。

  我们知道派生类可对基类的任何同名虚函数进行重写,但是不能调用基类私有虚函数。不过,派生类却可以改变基类虚函数的访问性。

  Private成员名字只对所属类的其他成员或友元来说是可访问的,而这里的其他成员也包括成员模板函数的任何显式特化(任何成员模板都可以针对任何类型进行特化,即对特殊的类型使用特殊的内部实现。这个技巧可以用来访问私有成员)。同时,任何对某个成员具有访问性的代码都可以通过泄露该成员的指针的方式将其的访问权限授予外界的任何代码!

  Private成员对于任何能够看到其所属类定义的代码来说都是可见的。这意味着它的函数参数必须预先声明,另外任何私有成员都会参与名字查找和重载决议,因此可能会使调用变得无效或具有二义性。

相关文章:

----------------------------------------------------

兄弟的公司:

欢迎转载,请注明作者和出处。

本文转自 zhenjing 博客园博客,原文链接:http://www.cnblogs.com/zhenjing/archive/2010/11/03/1867969.html
   ,如需转载请自行联系原作者
你可能感兴趣的文章
PostgreSQL与MySQL源代码分析之旅(2)下--MySQL源代码结构
查看>>
数论 - Miller_Rabin素数测试 + pollard_rho算法分解质因数 ---- poj 1811 : Prime Test
查看>>
docker 容器启动的模板以及注意事项
查看>>
2018年全国大学生电子设计竞赛
查看>>
三层交换+DHCP实验详解
查看>>
C - Common Subsequence
查看>>
如何以特定的时间间隔为图片添加动画效果?
查看>>
虚拟机mac 与主机的网络共享
查看>>
02 管理企业
查看>>
EventID 6398
查看>>
DNS服务器搭建
查看>>
页面生成周期中的两个Application池的详情小弟了解
查看>>
localhost与127.0.0.1的区别是什么?
查看>>
机器学习算法汇总:人工神经网络、深度学习及其它
查看>>
Android下Affinities和Task
查看>>
我们应该如何对待开源?——看完ssh有感
查看>>
启动Android模拟器报 “The connection to adb is down, and a severe error has occured.”的错误...
查看>>
activity跳转动画
查看>>
THE OVERARCHING PROCESS OF TEST DESIGN
查看>>
Linux 网络编程之 Select
查看>>