Practica

Páginas: 14 (3347 palabras) Publicado: 14 de mayo de 2012
PREGUNTA 1
Herencia
Cuando una clase hereda de otra, la clase derivada incorpora todos los miembros de la clase base además de los suyos propios.
La herencia es una herramienta muy importante en muchos aspectos del desarrollo de aplicaciones:
* Organización del diseño.
* Reusabilidad de clases (propias o no).
* Mejora del mantenimiento.
Tomando como base la clase TObjGraf se van aconstruir dos nuevas clases, TCirculo y TCuadrado, que derivan de TObjGraf. Esto significa que los objetos de estas clases tienen asociados las propiedades y métodos de la clase base, TObjGraf, además de los suyos propios. En la figura 5.3 esquematizamos el mecanismo de herencia para las nuevas clases y las nuevas propiedades que se asocian a los objetos de las clases derivadas.
Figura 5.3. Lasclases TCirculo y TCuadrado heredan las propiedades y métodos de la clase TObjGraf.4

En ObjGraf.h:
//*************************************************/
// Definicion de la clase derivada TCirculo
// Deriva de la clase base TObjGraf
//*************************************************/

classTCirculo : public TObjGraf {

public:

int Radio; // Propiedad exclusiva de TCirculo

};

//*************************************************/
// Definicion de la clase derivada TCuadrado.
// Deriva de la clase base TObjGraf//*************************************************/

class TCuadrado : public TObjGraf {

public:

int Lado; // Propiedad exclusiva de TCuadrado

};
Antes del nombre de la clase base hay que poner public, esto es así porque C++ permite también laherencia private. Pero ésta no se suele usar, por lo que nosotros supondremos que sólo existe la public.
 

PREGUNTA SINTAXIS DE TIPOS DE HERENCIA
Herencia simple
La herencia en C++ es un mecanismo de abstracción creado para poder facilitar y mejorar el diseño de las clases de un programa. Con ella se pueden crear nuevas clases a partir de clases ya hechas, siempre y cuando tengan un tipo derelación especial.
En la herencia, las clases derivadas "heredan" los datos y las funciones miembro de las clases base, pudiendo las clases derivadas redefinir estos comportamientos (polimorfismo) y añadir comportamientos nuevos propios de las clases derivadas. Para no romper el principio de encapsulamiento (ocultar datos cuyo conocimiento no es necesario para el uso de las clases), seproporciona un nuevo modo de visibilidad de los datos/funciones: "protected". Cualquier cosa que tenga visibilidad protected se comportará como pública en la clase Base y en las que componen la jerarquía de herencia, y como privada en las clases que NO sean de la jerarquía de la herencia.
Antes de utilizar la herencia, nos tenemos que hacer una pregunta, y si tiene sentido, podemos intentar usar estajerarquía: Si la frase <claseB> ES-UN <claseA> tiene sentido, entonces estamos ante un posible caso de herencia donde clase A será la clase base y clase B la derivada.
Ejemplo: clases Barco, Acorazado, Carguero, etc. un Acorazado ES-UN Barco, un Carguero ES-UN Barco, un Trasatlántico ES-UN Barco, etc.
En este ejemplo tendríamos las cosas generales de un Barco (en C++)class Barco {
protected:
char* nombre;
float peso;
public:
//Constructores y demás funciones básicas de barco
};
y ahora las características de las clases derivadas, podrían (a la vez que heredan las de barco) añadir cosas propias del subtipo de barco que vamos a crear,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Practicas
  • Practicas
  • Practicas
  • Practica
  • Practica
  • Practica
  • Practica
  • Practicas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS