Это код обозревают проблемы алмазов дерева множественного наследования и по мне этот код круто, но он показывает некоторые ошибки компиляции на ..help меня, чтобы понять ошибкуПочему выход показывает ошибки
#include<iostream>
using namespace std;
class A //A Diamond tree problem
{
int x;
public:
A(int i) { x = i; }
void print() { cout << x; }
};
class B: virtual public A
{
public:
B():A(10) { }
};
class C: virtual public A
{
public:
C():A(20) { }
};
class D: public B, public C{
};
int main()
{
D d;
d.print();
return 0;
}
Какая ошибка вы получаете? –
Это дает ошибку, потому что 'A' должен иметь конструктор по умолчанию. ** Или ** вам нужно добавить конструктор в 'D', который вызывает конструктор' A'. –