C ++ список инициализатора виртуального наследования
в следующем коде:
class A
{
public:
int x;
A(int x):x(x){}
};
class B: public virtual A
{
public:
B(int x):A(x){}
};
class C: public virtual A
{
public:
C(int x):A(x){}
};
class D: public B, public C
{
public:
D(int x):B(x++), C(x++), A(x++){}
};
два вопроса:
Зачем мне добавлятьA(...)
в D 'список инициализаторов?D(int x):B(x++), C(x++), A(x++){}
а такжеD(int x):A(x++), B(x++), C(x++){}
оба дают одинаковый результат сcout