Herencia multiple

Solo disponible en BuenasTareas
  • Páginas : 20 (4963 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de septiembre de 2010
Leer documento completo
Vista previa del texto
14 - Herencia multiple

Tutorial creado por Peter Class; traducción por Pello Xabier Altadill Izura . Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-tutorial-c++/html/
28 Febrero 2006
< anterior | 1 .. 12 13 14 15 16 .. 23 | siguiente >
""Una de las oportunidades que nos ofrece el lenguaje c++ es la posibilidad de que un objeto tenga la herencia de mas de una clase; esta ventajafue considerada por los desarrolladores de Java como una pega y la quitaron, e incluso hay desarrolladores de c++ que prefieren evitar este tipo de herencia ya que puede complicar mucho la depuracion de programas Para ilustrar un caso de herencia multiple hemos definido la superclase Habitante; de ella heredan dos clases distintas: Humano (que hablan) y Animal (que matan). Ahora queremos definirun ente que tiene propiedades de esas dos clases: Militar, ya que el militar habla y ademas mata. Como podemos definirlo? con una herencia multiple. Vamos la definicion de la superclase o clase padre Habitante Notas de la logia POO Conviene definir todos los metodos de un clase como const siempre que en el metodo no se modifiquen los atributos. Tu resistencia es inutil. unete a nosotros o muere.Definir metodos como const le facilitara el trabajo al compilador y al programador. Nota el codigo necesita revision y testeo


/
* Habitante.hpp
* Clase que define el objeto habitante
*
* Pello Xabier Altadill Izura
*
*/

usingnamespace std;
#include <iostream>

class Habitante {

private:

char *nombre;

int edad;

public:

Habitante();virtual ~Habitante();

Habitante(const Habitante &);

virtual void dormir();

// setter/getter o accessors
virtual char *getNombre() const { return this->nombre;}

// inline
virtual void setNombre(char *nombre){ this->nombre = nombre; } // inline

virtual int getEdad() const { return this->edad;} // inline

virtual void setEdad(int edad) { this->edad = edad; } // inline

}; |

Y su implementacion


/
* Habitante.cpp
* Programaque implementa la clase habitante
*
* Pello Xabier Altadill Izura
* Compilacion: g++ -c Habitante.cpp
*
*/

#include "Habitante.hpp"

// Constructor
Habitante::Habitante() {cout << "-clase habitante- Habitante construido."<< endl;

}

// Destructor
Habitante::~Habitante() {

cout << "-clase habitante- Habitante "<< this->getNombre() << " destruido."<< endl;

}// constructor copia
Habitante::Habitante(const Habitante & original) {

nombre = new char;
original.getNombre();

}


// metodo dormir
void Habitante::dormir() {...
tracking img