本文参照于狄泰软件学院,唐佐林老师的——《C++深度剖析教程》
思考:我们在类的继承的时候,需要在子类后加上‘:public Parent’。Parent表示被继承的类,那么public的意义是什么?
我们是否可以将继承语句中的public换成protected和private呢?如果可以,与public继承有什么区别?
示例代码:
#include <iostream>
#include <string>
using namespace std;
class Parent
{
};
class Child_A : public Parent
{
};
class Child_B : protected Parent
{
};
class Child_C : private Parent
{
};
int main()
{
return 0;
}
编译可以通过,说明C++中支持这3种继承方式的。那么它们有什么不同的意义吗?
1. public继承:父类成员在子类中保持原有的访问级别
2. private继承:父类成员在子类中变为私有成员
3. protected继承:父类中的公有成员变为保护成员,其他成员保持不变。
注:C++中的默认继承方式为private!
然而!尽管C++支持那么多的继承方式,事实却是:
1. C++工程项目中只使用public继承
2. 从语言发展史来看,C++派生语言只支持一种继承方式,就是public继承。
3. protected和private继承所带来的复杂性远大于实用性。