Herencia en c++

Solo disponible en BuenasTareas
  • Páginas : 6 (1367 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de octubre de 2010
Leer documento completo
Vista previa del texto
Programación Orientada a Objetos 5 – Herencia en C++

-1-

Herencia en C++
Generalidades sobre el concepto de herencia ........................................................................................................1 Herencia Simple......................................................................................................................................................3Ventajas e inconvenientes de la derivación Privada y Protegida .......................................................................7 Constructores y Destructores en la herencia .........................................................................................................7 Conversiones entre las clases base yderivadas....................................................................................................11 Ambigüedades en la Herencia Simple .................................................................................................................16 Herencia Múltiple .................................................................................................................................................18 Ambigüedades en la HerenciaMúltiple...............................................................................................................22 Reglas de Dominio ................................................................................................................................................31Ejercicios...............................................................................................................................................................33

Generalidades sobre el concepto de herencia
Se entiende por herencia el proceso por el que un objeto puede tomar características de otro objeto1. La herencia se puede usar de dos formas: 1. Cuando una clase escrita no llega a cubrir las necesidades que exige un determinado problema, se puede retocar el código cambiando las características que se requieren,e ignorando el resto. Esto permite una programación rápida. Esto es una forma de reutilización del código. 2. Se expresa un determinado problema como una jerarquía de clases, donde existe una clase base de la que se derivan otras subclases. La interfaz de la clase base es común a todas las clases derivadas. La herencia facilita la construcción de clases, una de las propiedades más interesantes dela filosofía de la POO. Cuando una clase hereda de otra clase se denomina clase derivada, y a veces clase hija, subclase o clase descendiente. La clase de la cual hereda recibe el nombre de clase base, en ocasiones también se la conoce como clase padre, superclase o clase ascendiente2 Cualquier clase puede ser una clase base. Es más una clase puede ser clase base para más de una clase derivada. Asu vez, una clase derivada puede ser clase base de otras clases. Se recuerda que los elementos de una clase se pueden dividir en tres grupos: public: Accesibles desde cualquier función del programa. private: Sólo pueden acceder a ellos funciones miembros de la clase, o funciones afines. protected: Sólo pueden acceder a ellos las funciones miembro de la clase, de clases derivadas o las funcionesafines. La siguiente tabla recoge todas las posibles combinaciones de los accesos a las secciones de una clase: Especificador de Desde la propia acceso clase Desde las clases derivadas Desde el exterior Si Si Si public Si Si No protected Si No No private

1

En C++ sólo se pueden heredar clases, no funciones ordinarias ni variables. Los términos más tradicionales en C++ son clase base y clasederivada, y son los que se van a utilizar en este documento mayoritariamente.
2

Ingeniería Técnica en Informática de Sistemas (3er curso) Departamento de Informática y Automática – Universidad de Salamanca

(versión Febrero 2003)

Programación Orientada a Objetos 5 – Herencia en C++

-2-

Cuando se hereda, las clases derivadas reciben las características de la clase base, pudiendo...
tracking img