Redefinir metodo virtual

dcordero
30 de Junio del 2006
Hola, tengo un problema con una jerarquia de clases. Explico:

Tengo una jerarquia con 1 clase base y 1 clase derivada. En la clase base tengo 1 metodo "mostrar" que me saca por pantalla todos los atributos de la clase base.

Tengo otro metodo "mostrar" en la clase derivada que redefine al de la clase base. Y este metodo saca por pantalla los atributos de la clase derivada.

Lo que quiero es hacer una llamada al metodo "mostrar" de la clase base desde el metodo "mostrar" de la clase derivada, para hacer q el "mostrar" de la derivada muestre todos los atributos sin repetir codigo.

Pero nose como hacer esta llamada. Si hago un:

mostrar ();

desde el metodo de la clase derivada, haré una llamada recursiva al mismo metodo.

Como hago esto?

hiei
30 de Junio del 2006
Tienes que hacer:

void ClaseDerivada::mostrar() {
ClaseBase::mostrar();
}

Esto se llama resolver el scope (o visivilidad) del metodo porque por defecto supone que al hacer mostrar estaras llamando al metodo virtual puero (que en tiempo de ejecucion esta refiriendose a si mismo)

Suerte.