tengo:C++: Cómo llamar a una función de la clase padre desde fuera
class A{
public:
virtual void foo();
};
class B : public A{
public:
void foo();
};
B *ptr = new B();
que desea llamar a un de foo()
directamente utilizando el puntero 'PTR'.
Cuando intento
(A*)ptr->foo();
que todavía llama a la versión de B de foo()
. ¿Cómo llamo a la versión de A en su lugar?
¿Esto es posible? ¿Cuáles son las alternativas? Gracias.
Eche un vistazo a http://en.wikipedia.org/wiki/Scope_resolution_operator – Pramod
¿Puede aclarar qué quiere decir con "no funcionó"? ¿Qué sucede exactamente cuando pruebas el código anterior? –
Hacer esto completamente anula el propósito de hacer que una función sea virtual, por lo que significa que el usuario de la clase 'A 'está evadiendo la intención del diseñador de la clase. Esto probablemente significa que hay un error de diseño en alguna parte: o bien 'A' no proporciona toda la funcionalidad que se necesita, o el usuario de 'A' no entiende lo que 'A 'debe hacer. –