0. 问题:继承表达式中冒号(:)表示继承关系,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;
}
1. 不同的继承方式
C++中支持三种不同的继承方式
-
public
继承:父类成员在子类中保持原有访问级别 -
private
继承:父类成员在子类中变为私有成员 -
protected
继承:父类中的公有成员变为保护成员,其它成员保持不变
C++中默认继承方式为
private
2. 遗憾的事实
- 一般而言,C++工程项目中只使用
public
继承 - C++的派生语言只支持一种继承方式——
public
继承 -
protected
和private
继承带来的复杂性远大于实用性
3. 小结
- C++中支持3中不同的继承方式
- 继承方式直接影响父类成员在子类中的访问属性
- 一般而言,工程中只使用public的继承方式
- C++的派生语言中只支持public继承方式