Duda Acerca de Herencia

(1/1)

Gerik:

digamos: xD

Class padre{public:
                  capturar();}
class hija:Public padre{capturar();}

main()
  {hija ob;
   ob.capturar();}

mi duda es como llamar la funcion capturar del padre desde el main con la clase hija

Agradezco su pronta Respuesta 

Littlehorse:
Si esta definida en la clase base, podrás acceder desde la derivada (al menos que el miembro sea privado), así que lo único que tienes que hacer es llamarla.

Por ejemplo:

Podes desambiguar directamente en la definición de la clase y hacer algo así:

Código
class hija:public padre
{
public:
void capturar()
    {
     padre::capturar();  
    }
};


O no hacer lo anterior y llamarla directamente desambiguando otra vez (con ::), con el objeto de la clase derivada.

Código
hija obj;
obj.capturar();//Metodo publico, clase derivada
obj.padre::capturar();//Metodo publico, clase base      


De todas maneras hay que tener cuidado sobre este tipo de practicas ya que C++ permite herencia múltiple, por lo tanto las definiciones de los métodos pueden tornarse ambiguas.
En el caso que uses Visual Studio tal vez puedas usar el keyword __super, pero por supuesto esto solo es Microsoft specific.

Te recomiendo leer sobre funciones virtuales para que tengas una idea de como podes aprovechar un poco mas este tipo de situaciones.


Saludos!

Navegación

[0] Índice de Mensajes