C++类中的成员类型

C++中的成员分为三种类型:公有成员,私有成员,保护成员。
      如果不特别指定,类里所有的成员都是公有(Public)的,不用特地声明。但是私有(Private)成员则是要一定声明的。

  这三种类型才成员的区别在于,对于本类来说:
       公有成员,外部可以访问的成员。
       私有成员,外部不可以访问的成员。
       保护成员,外部不可以访问的成员。

乍看起来,私有成员与保护成员的访问权限是相同的,使用私有成员就行了,貌似没有必要再多出来一个保护成员。
       我们要相信,我们觉得自己挺明白,弄出C++的大牛比我们还明白,他们当然知道哪些是需要的哪些是没用的,如果保护成员没有用处,还会出现在C++中吗?
       实际上,保护成员与私有成员的区别体现在继承上。

继承分为:公有继承,私有继承,保护继承。
       公有继承,基类的公有成员和保护成员作为派生类的公有成员,外部可以访问;
       私有继承,基类的公有成员和保护成员作为派生类的私有成员,外部不可以访问;
       保护继承,基类的公有成员和保护成员作为派生类的保护成员,外部不可以访问;

  (外部指基类的外部,即派生类中可以访问,在派生类的外部不能访问该函数)


       这三种继承中,派生类都不能访问基类的私有成员。
       从继承中,我们可以看出,保护成员和私有成员有本质上的区别。
       当然,也可以说在继承中,保护成员和公有成员没什么区别。


       可以看出,保护成员就是夹在私有成员和公有成员间的一个第三者,说是第三者可能不太合适,应该是一夫二妻里的老公,两边他都有关系,但是本质上他又和两边都不同(他是男的。。。)

通过以上的说明我们也可以看出,保护成员的作用主要是在继承时才体现出来的。

可能有好事者又要问,那私有继承和保护继承有什么区别,继承来的成员都是外部不能访问的啊?对于这个问题,继承一次好办,确实没区别,但是如果再从派生类派生出派生类2,那就有区别了,因为私有成员是不能被再派生出来的派生类2访问的。

转载于:https://www.cnblogs.com/yiyiruohan/archive/2010/08/17/1801165.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值