【发布时间】:2021-09-22 03:24:49
【问题描述】:
我需要实现几个模块,如下所示,
#include <stdio.h>
class Base{
protected:
int data;
};
class ModeA : public Base{};
class ModeB : public Base{};
class ModeHybrid: public ModeA, public ModeB{
public:
void func(){printf("%d\n", this->data);}
};
int main(){
ModeHybrid mh;
mh.func();
}
在哪里,
- 有一个类'Base'
- 两个模块“ModeA”和“ModeB”继承自“Base”
- 混合模块“ModeHybrid”继承自“ModeA”和“ModeB”
但是,成员变量“data”将被复制,因为“ModeHybrid”继承自“ModeA”和“ModeB”。
有什么办法可以避免吗?
【问题讨论】:
-
查找“虚拟继承”
标签: c++ inheritance multiple-inheritance