Tengo una clase existente que declara un método virtual y define una implementación predeterminada. Ahora quiero sobrecargar ese método con un parámetro diferente y también dar una implementación predeterminada. Además, quiero hacer cumplir la restricción, que si el primer método fue anulado por una subclase , entonces el segundo (sobrecargado) método virtual debe ser anulado también.¿Es posible determinar/afirmar que si una función virtual queda anulada, otra también se reemplaza?
¿Esto es posible incluso dentro de C++? Si es así, ¿es posible en tiempo de compilación?
código Ejemplo:
class ParamA {};
class ParamB {};
class Base
{
public:
virtual void method(ParamA a)
{
// default behavior
}
virtual void method(ParamB b)
{
// default behavior
}
}
class Derived : public Base
{
public:
virutal void method(ParamA)
{
// special behavior
}
}
Mi objetivo es detectar las clases de tipo Derived
y hacerlas cumplir para implementar su verison de method(ParamB b)
.
Puede hacer ambos virtuales en la clase base pura virtual ... –
Lamentablemente, esa no es una opción ... –
@js_: ¿Por qué no es una opción? Se trata de la única forma de (casi) hacer cumplir las reglas que desea. –