Sobrecarga de la función virtual pura.
Usualmente uso funciones virtuales puras para aquellos métodos que mi código requiere para que funcionen bien. Por lo tanto, creo interfaces y luego otros usuarios implementan sus clases derivadas. Las clases derivadas tienen solo estas funciones virtuales como públicas, mientras que algunos métodos adicionales deberían implementarse como privados ya que mi código no las llama. No sé si esto se puede considerar como una buena práctica de la POO (¿hay algún patrón de diseño?). De todos modos, mi pregunta es: ¿Puede un usuario sobrecargar una función virtual pura?
es decir
class Base
{
public:
Base();
virtual ~Base();
virtual void foo(int,double)=0;
};
class Derived:
public Base
{
private:
// methods
public:
Derived();
virtual ~Derived();
virtual void foo(int, double, double); //this doesn't work
};
Una solución podría ser:
virtual void foo(int,double,double=0)=0;
en la clase base pero es muy limitada. ¿Qué piensa usted acerca de?