c++中public、protected与private关键字

访问权限关键字(无继承关系时)

  • public: 这个关键字代表对外界开放,用户可以通过一个对象直接进行其public成员的访问操作;

  • protected: 这个关键字代表只对自己的派生类开放,对与普通用户不开放;

  • private: 这个关键字代表只对自己内部的成员(或友元)开放,对其他任何外在用户(包括派生类对象)都不开放。

派生类继承来的基类部分的成员的访问权限说明

派生类继承来的基类部分的成员的访问权限受到两个因素影响:

  1. 在基类中该成员的访问说明符;
  2. 在派生类的派生列表中的访问说明符。

然后关于派生类继承来的成员的权限可以分为以下两方面来讨论。

派生类对自己继承的基类部分的成员的访问权限解析

派生类对其继承而来的基类部分的成员的访问权限只受到1个因素影响:在基类中该成员的访问说明符

//下列两个关键字,第一个代表基类中成员的访问说明符;第二个代表派生类派生列表中的访问说明符
public + public:    可以访问
public + protected: 可以访问
public + private:   可以访问
protected + public: 可以访问
protected + protected:  可以访问
protected + private:    可以访问
private + public:   不可访问
private + protected:    不可访问
private + private:  不可访问

由上,只有基类中成员的访问说明符起作用了,派生访问说明符并没有起作用。

派生访问说明符的作用

派生访问说明符作用是控制派生类用户(包括派生类的派生类在内)对于这部分基类成员的访问权限。

所以对于一个派生类的用户(包括派生类的派生类在内),其对于此派生类中的基类部分的成员的访问权限就是由两个因素决定的了。如下:

//下列两个关键字,第一个代表基类中成员的访问说明符;第二个代表派生类派生列表中的访问说明符
public + public:    可以访问
public + protected: 派生类的派生类用户可以访问,派生类的其他用户不可访问
public + private:   不可访问
protected + public: 派生类的派生类用户可以访问,派生类的其他用户不可访问
protected + protected:  派生类的派生类用户可以访问,派生类的其他用户不可访问
protected + private:    不可访问
private + public:   不可访问
private + protected:    不可访问
private + private:  不可访问

同样,还有一点,我们会看到有将派生类向基类类型转换的代码,这个也是有条件的。条件就是,如果对当前代码基类部分的公有成员是可访问的,则派生类向基类的类型转换也是可访问的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值