Herança de interface em C ++
Eu tenho a seguinte estrutura de classe:
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();
}
Agora o código a seguir não é compilável:
int main()
{
InterfaceB* test = new ClassAB();
test->methodA();
}
O compilador diz que o métodomethodA()
é virtual e não implementado. Eu pensei que ele é implementado emClassA
(que implementa oInterfaceA
). Alguém sabe onde está minha culpa?