Herencia de interfaz en C ++
Tengo la siguiente estructura de clase:
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();
}
Ahora el siguiente código no es compilable:
int main()
{
InterfaceB* test = new ClassAB();
test->methodA();
}
El compilador dice que el método.methodA()
Es virtual y no está implementado. Pensé que se implementa enClassA
(que implementa elInterfaceA
). ¿Alguien sabe donde está mi culpa?