C ++伪钻石

时间:2014-07-13 14:13:40

标签: c++ multiple-inheritance

我搜索过类似的问题,但没有找到。因此,如果发生重复,我很抱歉,因为这对我来说是一个常见的问题。

我的问题非常简单,请考虑以下事项:

class A {
public:
  virtual void doit();
};

class B1 : public virtual A {
public:
 void doit();
};

class B2 : public virtual A {
public:
 void doit();
};

class C : public B1, public B2 {};

如果我这样做会发生什么:

int main(int argc, char** argv) {
  C* el = new C();
  el->doit(); /* WHAT HAPPENS? */
}

因为最后一个类没有覆盖该方法,所以它从父母那里获取方法......但选择了哪一个?

0 个答案:

没有答案
相关问题