Код: Выделить всё
class A
{
public:
A(std::string id);
};
class B : public virtual A
{
public:
B();
};
class C : public virtual A
{
public:
C();
};
class D : public B, public C
{
public:
D(std::string id);
};
D::D(std::string id) : A(id), B(), C()
{
}
class X : public D
{
public:
X(std::string id);
}
X::X(std::string id) : D(id)
{
}
Это можно исправить, реализовав конструктор X следующим образом:
Код: Выделить всё
X::X(std::string id) : A(id), D(id)
{
}
Подробнее здесь: https://stackoverflow.com/questions/145 ... f-d-initia
Мобильная версия