Bueno, os pido ayuda porque ando muy desesperado, llevo dias y dias intentando luchar contra esta practica, pero me puede xDD
Iré al grano, tengo una clase llamada Componente (que guarda una String), que es abstracta, con funciones virtuales puras, de ella, creo otras clases, llamadas ComponenteTexto, ComponenteNumero, ComponenteFecha y ComponenteCompuesto (este ultimo es una vector con tipos Componente).
Ahora bien, tengo que crearme una función para los objetos ( ya que es virtual pura, la tendré que crear para cada objeto), la cual es Componente* copia() const.
La descripción de esta función es: Devuelve un nuevo objeto creado en memoria dinámica que es copia del actual. El objeto copiado debe ser independiente del original, o sea, no debe compartir datos.
Pero el caso es que no se como crear la copia del componentetexto y que sea del tipo componente. Que yo sepa, no puedo devolver un tipo Componente, ya que es abstracto y no se puede declarar un objeto de ese tipo, y estoy batallando contra mis compañeros de clase, que insisten en devolver un tipo componente.
Es esto posible?? o al devolver tipo componente se refiere a que devuelva al tipo de el objeto de la funcion???
EJ: si desarrollo el copia para componentetexto, que devuelva un componentetexto.