「hello world」が 3 回出力されるのはなぜですか? C++ での struct の virtual 継承についてよくわかりません。
#include<iostream>
using namespace std;
struct BS{
BS() {
cout << "hello world" << endl;
}
unsigned int color;
};
struct mid1 : virtual public BS { };
struct mid2 : virtual public BS { };
struct mid3 : public BS { };
struct mid4 : public BS { };
struct D : public mid1, public mid2, public mid3, public mid4 { };
int main() {
D d;
return 0;
}