3.4.1 Herencia y Composición
Herencia
Una de las principales propiedades de las clases es la herencia. Esta propiedad permite crear nuevas clases a partir de clases existentes, conservando las propiedades de la clase original y añadiendo otras nuevas.
La nueva clase obtenida se conoce como clase derivada, y las clases a partir de las cuales se deriva, clases base. Además, cada clase derivada puede usarse como clase base para obtener una nueva clase derivada. Y cada clase derivada puede serlo de una o más clases base. En este último caso se hablará de derivación múltiple.
Esto permite crear una jerarquía de clases tan compleja como sea necesario
Características importantes de la herencia
Los siguientes elementos de la clase base no se heredan:
Si no se especifica el tipo de derivación, C++ supone que el tipo de herencia es private.
La forma general de declarar clases derivadas es la siguiente:
class <clase_derivada> :
[public|private] <base1> [,[public|private] <base2>] {};
Para cada clase base se puede definir el tipo de acceso, public, protected o private. Si no se especifica ninguno, por defecto se asume que es private. Por lo que los miembros heredados de la base pasan a tener el tipo según la siguiente tabla.
Public
Protected
Prívate
Composición
La composición de clases permite que un objeto de una clase pueda contener a otro objeto de cualquier otra clase. Relación de agregación: tener-un. Ejemplo: Un empleado contiene un objeto de tipo fecha. Se accede a las funciones miembro a través del objeto.
Ejemplo: siguiendo con el ejemplo anterior de los empleados, empleado.fecha.mostrar(). El objeto se ha definido como público.
Sintaxis: class nombre_clase{ .... class objeto; } Cuando se crea un objeto se invoca automáticamente a los constructores de los objetos miembros. Primero se llama a los constructores de los objetos miembro (según el orden en el que se han declarado) y después el constructor de la clase global.
|