【发布时间】:2016-09-21 20:12:57
【问题描述】:
因此我们有经典的钻石问题和 int 的解决方案:
class A
{
public:
A()
{
std::cout << "A c'tor" << std::endl;
}
void f()
{
std::cout << "A::f()" << std::endl;
}
};
class B :virtual public A{};
class C :virtual public A{};
class D : public B, public C{};
编译器是如何处理这个问题的,所以它只创建了一个 A 的实例? 请尽可能具体地回答。
【问题讨论】:
-
看看this
标签: c++ inheritance multiple-inheritance virtual-inheritance diamond-problem