[C++再学习系列] 可访问性问题

可访问性问题

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

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

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

Public 能被外部访问。

 

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

 

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

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

转载于:https://www.cnblogs.com/wencangz/archive/2012/11/13/2768620.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值