CLASES DERIVADAS: - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

CLASES DERIVADAS:

Description:

Title: Diapositiva 1 Author: brandsmart Last modified by: Gabriel Created Date: 10/26/2006 10:34:10 PM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 17
Provided by: brand54
Category:

less

Transcript and Presenter's Notes

Title: CLASES DERIVADAS:


1
  • CLASES DERIVADAS
  • HERENCIA

2
CLASES DERIVADAS
  • La herencia o relacion es-un es la relacion que
    existe entre dos clases, en la que una clase
    denominada se crea a partir de otras ya
    existente, denominada clase base.
  • La declaracion de la derivacion de clases debe
    incluir el nombre de la clase base de la que se
    deriva y especificador de acceso que indica el
    tipo de herencia(Publica, Privada y Protegida).

3
EJEMPLO
  • class nombre_clase tipo_herencia
    nombre_clase_base
  • class Triangulo public Figura
  • public
  • //seccion publica
  • ..
  • private
  • //seccion privada

4
EJEMPLO 2
  • Considerese una clase Prestamo y tres clases
    derivadas de ella Pago_fijo, Pago_variable e
    Hipoteca.
  • class Prestamo
  • protected
  • float capital
  • float tasa_interes
  • publicPrestamo( float, float)
  • virtual int CrearTablaPagos(floatMAX_TERMNUM_C
    OLUMNAS)C
  • Class Hipoteca public Prestamo
  • private
  • int num_recibos
  • int recibos_por_anyo
  • float pago

5
Especificadores de Acceso
  • Herencia publica es aquella en que el
    especificador de acceso es public(publico).
  • Herencia privada es aquella en que el
    especificador de acceso es private(privado).
  • Herencia protegida es aquella en que el
    especificador de acceso es protected(protegido).

6
EJEMPLO 3
  • include fstring.h
  • class Publicacion
  • public
  • void NombrarEditor(const char s)
  • void PonerFecha(unsigned long fe)
  • private
  • string editor
  • unsigned long fecha
  • class Revista public Publicacion
  • public
  • void NumerosPorAnyo(unsigned n)
  • void FijarCirculacion(unsigned long n)
  • private
  • unsigned numerosPorAnyo
  • unsigned long circulacion

7
Tipos de Herencias
Tipo de herencia Tipo de elemento Accesible a clase derivada?
Public public protected private Si Si No
Private public protected private Si Si No
8
Herencia Publica
  • Significa que una clase derivada tiene acceso a
    los elementos públicos y protegidos de su clase
    base.

9
Herencia Privada
  • Significa que un usuario de la clase derivada no
    tiene acceso a ninguno de sus elementos de la
    clase base. El formato es
  • class ClaseDerivada private ClaseBase
  • public
  • //Sección publica
  • Protected
  • //Sección privada
  • Private
  • //sección privada

10
Herencia Protegida
  • Los miembros públicos y protegidos de la clase
    base se convierten en miembros protegidos de la
    clase derivada y los miembros privados de la
    clase se vuelven inaccesibles.

11
Tipos de Herencias y accesos que permiten
Tipos de herencia Acceso a miembro base Acceso a miembro a clase derivada
public public protected private public protected inaccesible
private public protected private protected protected inaccesible
private public protected private private private inaccesible
12
Ejemplo
  • class Base
  • public
  • int i1
  • Protected
  • int i2
  • Private
  • int i3
  • class D1 private Base
  • void f()
  • class D2 protected Base
  • void g()
  • Class D3 public Base
  • void h()

Void D1f() i10//Correcto i20//Correcto i
30//Error Base b b.i10//correcto b.i20//
Error b.i30//Error D1 d1 d1.i10//Error d1.i2
0//Error d1.i30//Error D2 d2 d2.i10//Error d
2.i20//Error d2.i30//Error D3
d3 d3.i10//Correcto d3.i20//Error d3.i30//E
rror
13
Operadores de Resolución de ámbito
  • class D4 protected base
  • public
  • basei1
  • D4 d4
  • d4.i10//correcto

14
Constructores
  • class B1
  • public
  • B1()cout ltltC-B1ltltendl
  • class B2
  • public
  • B2()cout ltltC-B1ltltendl
  • class D public B1, B2
  • public
  • D()cout ltltC-Dltltendl
  • D d1
  • Sintaxis
  • ClaseDClaseD(Parametros) ClaseB(Parametros),
    ListaMbrD
  • //Cuerpo del constructo

15
Ejemplo
  • Class Punto
  • public
  • Punto(int xv, int yv)
  • //
  • class Punto3D public Punto
  • public
  • Punto3D(int xv, int yv, int zv)
  • void fijarz()
  • private
  • int z
  • Punto3DPunto3D(int xv, int yv, int zv)
    Punto(xv, yv)
  • fijarz(zv)

16
Destructores
  • class C1
  • public
  • C1(int n)
  • C1()
  • private
  • int pi, l
  • C1C1(int n) l(n)
  • cout ltltlltlt enteros se asignanltltendl
  • C1C1()
  • coutltltlltlt enteros son liberadosltltendl
  • delete pi
  • Class C2 public C1
  • public
  • C2(int n)
  • C2()
Write a Comment
User Comments (0)
About PowerShow.com