第13周-项目1-基类中成员的访问限定符和派生类的继承方式

In member function 'void StudentB::showB()':|
error: 'int StudentA::num' is private|
error: within this context|
error: 'std::string StudentA::name' is private|
error: within this context|
error: 'char StudentA::sex' is private|
error: within this context|
num,sex,name在StudentA中是私有的不能再StudentA类外用,当然也包括StudentB
In function 'int main()':|
error: 'void StudentA::showA()' is inaccessible|
error: within this context|
error: 'StudentA' is not an accessible base of 'StudentB'|
stud2是StudentB定义的,因为是保护继承,stud2.showA( )只能在StudentB类中用
私有继承也只能在类内调用
总结:
(1)采用公共继承,基类的公用成员和保护成员在派生类中仍然保持其公用成员和保护成员的属性,而基类的私有成员在派生类中并没有成为派生类的私有成员,它仍然是基类的私有成员,只要基类的成员函数可以引用,而不能被派生类的成员函数引用,因此就成为派生类的不可访问的成员。
(2)采用私有继承,私有基类的公共成员和保护成员在派生类中的访问属性相当于派生类的私有成员,即派生类的成员函数能访问他们,而在派生类外不能访问它们。私有基类的私有成员在派生类中成为不可访问的成员。
(3)采用保护继承,保护基类的共有成员和保护成员在派生类中都成了保护成员,其私有成员仍为基类私有,也就是把基类原有的公有成员也保护起来,不让类外任意访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值