Herencia multiple en Visual C++

Hola shakarc.
A ver si puedes ayudarme:
Estoy haciendo un programa en Visual C++.
He creado una clase (A) que deriva de CObject y utiliza las macros DECLARE_SERIAL e IMPLEMENT_SERIAL para poder serializar.
También he creado dos clases (B y C) y ambas derivan virtualmente de la clase(A)
class B : virtual public class A
class C : virtual public class A
Lo que ocurre es que al implementar la serializacion en B y en C, el compilador me da un error:
error C2635: cannot convert a 'CObject*' to a 'B*'; conversion from a virtual base class is implied
¿Me puedes decir porque pasa esto?
Gracias.

1 Respuesta

Respuesta
1
El problema esta en que estarás intentando convertir un puntero de la clase hija (B) a un puntero de la clase padre (COBject). Esto no lo puedes hacer. A la inversa si que es posible.
Puedes si quieres definir el objeto B como un puntero a CObject y inicializarlo como un objeto B:
CObject* objb;
objb=new COBject();

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas