Dziedziczenie interfejsu w C ++
Mam następującą strukturę klas:
class InterfaceA
{
virtual void methodA =0;
}
class ClassA : public InterfaceA
{
void methodA();
}
class InterfaceB : public InterfaceA
{
virtual void methodB =0;
}
class ClassAB : public ClassA, public InterfaceB
{
void methodB();
}
Teraz nie można skompilować następującego kodu:
int main()
{
InterfaceB* test = new ClassAB();
test->methodA();
}
Kompilator mówi, że metodamethodA()
jest wirtualny i nie zaimplementowany. Myślałem, że jest to zaimplementowane wClassA
(który implementujeInterfaceA
). Czy ktoś wie, gdzie jest moja wina?