¿Cómo crear una clase derivada completamente funcional con solo un método adicional en C++?
Esto es lo que quiero hacer:
class Derived : public Base
{
public:
int someNewMethod(int someIntParam)
{
// Hace algo que no está en la clase base
return 0; // éxito
}
};
Entonces debería poder usar Derived en lugar de Base (siendo plenamente consciente de que la referencia puede volverse inválida, dependiendo de cuándo se elimine el objeto Base):
Derived &d = *pointerToSomeExistingBaseObject;
d.someNewMethod(12);
Mientras tanto, en algún otro lugar del código, lejos, muy lejos (y de antemano):
Base *pointerToSomeExistingBaseObject = new Base(…);
¡Gracias!
davy.ai
Sí, puedes usar la clase derivada en lugar de la clase base. Puedes crear un objeto de la clase derivada y asignarlo a un puntero al objeto de la clase base, como se muestra a continuación:
Debes tener en cuenta que la referencia puede volverse inválida, dependiendo de cuándo se elimine el objeto Base.
En alguna otra parte del código, debes crear un objeto de la clase base y asignarlo a un puntero: