面试真题

C++ · 中等 · 字节跳动

C++多继承是什么?有什么问题?怎么解决的?

中等 C++ 🎤 字节跳动
参考答案
多继承指一个派生类同时继承多个基类,可组合多类能力。问题:菱形继承引发数据冗余与二义性,如B、C继承A,D继承B和C,D内含两份A成员,访问A成员时产生歧义。解决:采用虚继承(virtual public),使公共基类在底层子对象中仅保留一份,通过虚基类指针共享;示例:class A{}; class B:virtual public A{}; class C:virtual public A{}; class D:public B,public C{}; 此时D中A唯一。多继承还可能引发命名冲突,可用基类作用域符显式指定。
题目整理自公开面经,答案由校招宝自研生成,仅供参考