-2

「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;
}
4

2 に答える 2