supongamos un cierto código (legacy), que no puede ser tocado, declararusando hermana herencia
struct B{
public:
void f(){}
};
y supongamos tener
struct A{
public:
virtual void f()=0;
};
es posible hacer una Una llamada subclase B :: f sin llamar explícitamente f(), es decir, en lugar de
struct C: public A, public B{
void f(){
B::f();
}
};
tener algo como
struct C:virtual public A,virtual public B{
};
(tenga en cuenta que esta última clase es abstracta, por el compilador A :: f no está definida)
¿Qué pasa con 'B :: f()'? Esa es la forma correcta de llamar a 'B :: f()'. –
imagine que tiene 100 funciones;) –
No, no hay forma de que las funciones de los miembros base puedan * implementar * funciones virtuales puras para otra clase base. Eso simplemente no funciona. Lo que tienes está bien. –