C++类成员访问控制及继承的访问控制

类成员访问控制:

公有类型成员定义了类的外部接口,在类外智能访问类的公有成员;

私有成员只能被本类的成员函数访问,来自外部的任何访问都是非法的,完全隐藏在类中,保护了数据的安全性;

保护类型成员的性质和私有成员性质相似,其差别在于继承过程中对产生的新类的影响不同,意义在于不想向外部暴露某个函数或者成员变量,但又想让派生类知道和访问这个成员,就将其用protected标志。是一个平衡点,既能实现成员隐藏,又能方便继承。

类的继承方式:

(1)公有继承

派生类内部可以访问基类中public和protected成员,但是类外只能通过派生类的对象访问基类的public成员。

a)基类的public成员在派生类中依然是public的。

b)基类中的protected成员在派生类中依然是protected的。

c)基类中的private成员在派生类中不可访问。

(2)私有继承

派生类内部可以访问基类中public和protected成员,并且类外也不能通过派生类的对象访问基类的成员(可以在派生类中添加公有成员函数接口间接访问基类中的public和protected成员)

a)基类的public成员在派生类中变成private成员。

b)基类的protected成员在派生类中变成private成员。

c)基类的private成员在派生类中不可访问。

进一步派生的话,基类的全部成员都无法在新的派生类中被直接访问。因此,私有继承之后,基类的成员再也无法在以后的派生类中直接发挥作用,实际上相当于中止了基类功能的继续继承性,出于这种原因,一般情况下私有继承的使用比较少。

(3)保护继承

派生类内部可以访问基类中public和protected成员,并且类外不能通过派生类的对象访问基类的成员(可以在派生类中添加公有成员函数接口间接访问基类中的public和protected成员)。

a)基类的public成员在派生类中变为protected成员。

b)基类的protected成员在派生类中依然是protected成员。

c)基类中的private成员在派生类中不可访问。

不管哪种继承方式,父类的私有成员都不可以访问,只有间接的通过公有成员才能获取到私有成员的值 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值