C++的三种继承方式

1. 公有继承

当类的继承方式为公有继承时,基类的公有和保护成员的访问属性在派生类中保持不变,而基类的私有成员不可访问。

基类的公有成员和保护成员被继承到派生类中仍作为派生类的公有和保护成员,派生类的其他成员可以直接访问它们;

其他外部使用者只能通过派生类的对象访问继承来的公有成员;

而无论派生类的成员还是对象都无法访问基类的私有成员。

2. 私有继承

当类的继承方式为私有继承时,基类的公有和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可访问。

基类的公有成员和保护成员被继承到派生类中作为派生类的私有成员,派生类的其他成员可以直接访问它们;

但是在类外部通过派生类的对象无法访问;

而无论派生类的成员还是对象都无法访问基类的私有成员。

3. 保护继承

当类的继承方式为保护继承时,基类的公有和保护成员都以保护成员身份出现在派生类中,而基类的私有成员在派生类中不可访问。

基类的公有成员和保护成员被继承到派生类中作为派生类的保护成员,派生类的其他成员可以直接访问它们;

但是在类外部通过派生类的对象无法访问

而无论派生类的成员还是对象都无法访问基类的私有成员。

无论哪种继承方式,基类的公有和保护成员都可以被派生类的成员访问。

无论哪种继承方式,基类的私有成员都不可以被派生类的成员和对象访问。

只有公有继承时,基类的公有成员才可以被派生类的对象访问。

在被继承时,基类的保护成员及和公有成员行为一致。

在被类的对象访问时,保护成员和私有成员的行为一致。

猜你喜欢

转载自blog.csdn.net/xukaiup/article/details/79857537