- 多继承
一个类继承了多个类。- 多继承下的构造函数
先调用基类的构造函数,再调用子类构造函数,基类构造函数调用顺序与声明派生类时继承基类的顺序一致。在子类声明构造函数时,可以在初始化列表显示构造,也可以不写,隐式调用基类的构造函数。 - 多继承下的析构函数
析构先析构子类,再按照与声明子类时继承基类顺序的相反顺序来析构。析构顺序与构造顺序相反。 - 菱形问题
当多继承的父类拥有更高的继承层级时,可能产生更复杂的问题比如多继承菱形。具体地如下图:
举例:class File{}; class InputFile: public File{}; class OutputFile: public File{}; class IOFile: public InputFile, public OutputFile{};
IOFile
的两个父类都继承自File
,那么File
的属性(比如filename
)应该在IOFile
中保存一份还是两份呢? 这是取决于应用场景的,就File::filename
来讲显然我们希望它只保存一份,但在其他情形下可能需要保存两份数据。 C++还是一贯的采取了自己的风格:都支持
- 多继承下的构造函数
bigo面试准备一
最新推荐文章于 2023-12-08 15:19:47 发布