undefined reference to при вызове конструктора базового класса
Надо реализовать ромбовидное наследование, и при этом инициализировать переменную id в дочернем классе. Не могу понять, что именно не так:
class TableGame
{
public:
int id;
TableGame();
TableGame(int id){
this->id = id;
}
virtual float getMass() = 0;
};
class Chess : public TableGame
{
float P, K, B, Kn, Q, R, box;
public:
Chess(float Pt, float Kt, float Bt, float Knt, float Qt, float Rt, float bt, int id) : TableGame(id){
P = Pt;
K = Kt;
B = Bt;
Kn = Knt;
Q = Qt;
R = Rt;
box = bt;
}
float getMass() override{
return P*8 + K*1 + Q*1 + B*2 + Kn*2 + R*2 + box*1;
};
};
class Domino : public virtual TableGame
{
float figure, box;
public:
Domino(float Ft, float Bt){
figure = Ft;
box = Bt;
}
float getMass() override{
return figure*28 + box*1;
};
};
class Complect : public Domino, public Chess
{
public:
Complect(float Pt, float Kt, float Bt, float Knt, float Qt, float Rt, float bt, int id, float Ft, float Btt) : Domino(Ft, Btt), Chess(Pt, Kt, Bt, Knt, Qt, Rt, bt, id) { //тут ошибка
}
float getFinalMass(){
return Chess::getMass() + Domino::getMass();
}
};
Это все один файл, других скриптов нету.