-1
在创建DR的对象时该代码时,字符串 “Hello World” 应当被印刷的4倍,而不是将其仅打印3次。 为什么如此? 从我认为这是因为mid1和mid2实际上是遗传的。 有人可以解释我什么时候发生,当我们几乎继承一个类,更重要的是,当它是有用的,为什么?
#include <iostream>
struct BS
{
BS()
{
std::cout << "Hello World" << std::endl;
}
unsigned int color;
};
struct mid1 : virtual public BS { };
struct mid2 : virtual public BS { };
struct mid3 : public BS { };
struct mid4 : public BS { };
struct DR : public mid1, public mid2,
public mid3, public mid4 { };
int main(int argc, char** argv)
{
DR d;
return 0;
}
[请选择](https://www.google.com/search?q=virtual+inheritance) – chris
您的意思是“”Hello World“应该打印3次,所以它是。”? –
没有任何有限的知识,我把它计算为4.但它是印刷3.我想知道原因。 – jairaj