Discusión:Herencia múltiple

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

En mi opinión, diseñar las clases de forma que los componentes carezcan de miembros comunes, de forma que Come, Vuela, Camina, etc, sean clases básicas con las que definir caracteristicas, clases más pequeñas en principio y más especializadas. Esto reduce el problema que las clases de herencia simple tienen al ir heredando funcionalidades que pueden no ser útiles para la solución que se pretende implementar. Algunos frameworks (MFC) carecen de esta posibilidad debido a que todas las clases son derivadas de un objeto común (CObject) ya desde un principio. ATL y por extensión WTL, son frameworks de programación en C++ cuya base es la herencia múltiple.

Un poco de código:

   class Animal
   {
   public:
       void Nace();
       void Come();
       void Reproduce();
       void Muere();
   };
   class Volador
   {
   public:
       void SetAlas(long nAlas);
       long GetAlas();
   };
   class Mamifero
   {
   public:
       void SetMamas(long nMamas);
       long GetMamas();
   };
   class Murcielago: public Animal,
                     public Volador,
                     public Mamifero
   {
   public:
       Murcielago()
       {
           Nace();
           SetAlas(2);
           SetMamas(4);
       }
   };

--Pharago (discusión) 17:34 19 oct 2008 (UTC)[responder]