Наследование интерфейса в C ++
У меня есть следующая структура класса:
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();
}
Теперь следующий код не компилируется:
int main()
{
InterfaceB* test = new ClassAB();
test->methodA();
}
Компилятор говорит, что методmethodA()
является виртуальным и не реализован. Я думал, что это реализовано вClassA
(который реализуетInterfaceA
). Кто-нибудь знает, где моя вина?