Herencia en C++ (Práctica 3)
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Redefinición de métodos
Los métodos que se heredan de una clase base no necesariamente deben conservar la misma definición/implementación en las clases derivadas, es decir, un método heredado puede ser redefinido en la clase derivada de modo que se conserve la misma firma (declaración) pero que el código que implementa la funcionalidad sea distinto, o bien agregue modificaciones a la implementación original de la clase base. Ejemplo:
Orden de ejecución de constructores y destructores en una clase derivada
Cuando se instancia un objeto del tipo de una clase derivada se ejecuta de manera implícita el constructor de la clase base justo antes de que se ejecute el constructor de la clase derivada. De manera análoga sucede con los destructores, pero en este caso se ejecuta primero el destructor de la clase derivada y luego el constructor de la clase base. El siguiente ejemplo ilustra el comportamiento descrito:
Tipos de herencia en C++ de acuerdo con la estructura de jerarquía
- Herencia simple: Este tipo de herencia se da cuando una clase derivada hereda solo de una clase base y de igual modo la clase base no hereda a ninguna otra clase.
class BaseA
{
};
class DerivadaBdeA: public BaseA
{
};
class BaseA
{
};
class BaseB
{
};
class DerivadaCdeAyB: public BaseA, public BaseB
{
};
class BaseA
{
};
class DerivadaBdeA: public BaseA
{
};
class DerivadaCdeB: public DerivadaBdeA
{
};
class BaseA
{
};
class DerivadaBdeA: public BaseA
{
};
class DerivadaCdeA: public BaseA
{
};
class BaseA
{
};
class BaseB
{
};
class DerivadaBdeA: public BaseA
{
};
class DerivadaCdeAyB: public DerivadaBdeA, public BaseB
{
};