0% encontró este documento útil (0 votos)
19 vistas7 páginas

HERENCIA

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas7 páginas

HERENCIA

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA


CURSO PROGRAMACIÓN ORIENTADA A OBJETOS

TEMA HERENCIA
Ing Daniel Osorio Maldonado
HERENCIA
⮚Propiedad de permitir a los Objetos crearse a partir de otros
objetos
⮚Cada subclase comparte características comunes con la clase
de la que deriva
⮚La clase original la llamamos clase base y las nuevas clases
creadas a partir de ellas, clases derivadas
⮚Si una clase recibe características de mas de una clase se llama
herencia múltiple
⮚La herencia la vamos a crear al declarar la clase derivada
Sintaxis
class base{
………………;
…………….;
};
class derivada:public base{
………………;
………………; };
Según el acceso se tiene:
⮚ Derivación publica (public):-> los miembros públicos
de la clase base serán miembros públicos en la clase
derivada. Los miembros protegidos de la clase base
serán protegidos en la derivada. Los miembros privados
de la clase base serán inaccesibles desde la derivada.
⮚ Derivación protegida (protected)-> todos los miembros
públicos y protegidos de la clase base son protegidos en
la derivada y los privados serán inaccesibles.
⮚ Derivación privada (private)-> todos los miembros
públicos y protegidos de la clase base serán privados
en la derivada. Los privados seguirán siendo
inaccesibles en la derivada.
//Se tiene la clase base opera1, que realiza un proceso y se desea derivar otra clase
llamada opera2, tomando como derivada la clase base, realizando otras operaciones

#include<iostream>
#include<stdlib.h> //Herencia
using namespace std; class opera2 : public opera1 {
class opera1 { protected:
protected: float z;
float a, b; public:
public: opera2();
opera1();//constructores opera2(float, float, float);
opera1(float, float); double opera();
double opera(); ~opera2(){cout<<”Liberando Memoria”;}
~opera1(){cout<<”Liberando Memoria”;} };
}; opera2::opera2()
//Implementacion {a = 5; b = 10; z = 3;}
opera1::opera1() opera2::opera2(float p, float q, float r)
{a = 5; b = 7;} {a = p; b = q; z = r;}

opera1::opera1(float m,float n) double opera2::opera()


{a = m; b = n;} {
double opera1::opera(){ return(a + b * powf(a, 1.0 / z));
return(a + powf(a, 1.0 / b));} }
void main() {
opera1 O1,OO1(13,17); opera2 O2,OO2(23,19,7);
float p, q, r;
cout << "La operacion resultante de la operacion1 " <<
O1.opera() << endl
<< "La operacion resultante de la herencia con opercion 2 "
<< O2.opera() << endl<<endl
<<"La Operacion Resultante con valores Inicializados en el
main() "<<OO1.opera()<<endl
<<"La Operacion Resultante con Herencia y Valores
Inicializados en el main() "
<<OO2.opera()<<endl<<endl
<< "Ingrese el Valor de a: "; cin >> p;
cout << "Ingrese el Valor de q: "; cin >> q;
opera1 OOO(p, q);
cout << "La Operacion resultante de la clase base: " <<
OOO.opera() << endl<<endl
<<"La Operacion Resultante de la clase derivada: ";
cout << "Ingrese el 3er valor "; cin >> r;
opera2 OOO1(p, q, r);
cout << OOO1.opera();
cout << endl;
system("pause");
}
//Se tiene el objeto cuadrado que calculara el float cuadrado::perimetro()
//Área y el perimetro del cuadrado {return(4 * a);}
//derivara una clase llamada rectángulo //Herencia
//que heredara del cuadrado un lado y de común class rectangu:public cuadrado{
//el área y el perimetro protected:
#include<iostream> float b;
#include<stdlib.h> public:
using namespace std; rectangu();
class cuadrado { rectangu(float, float);
protected: float area();
float a; float perímetro();
public: };
cuadrado(); rectangu::rectangu()
cuadrado(float); {a = 7; b = 17;}
float area(); rectangu::rectangu(float m,
float perimetro(); float n)
}; {a = m; b = n;}
//Implementacion float rectangu::area()
cuadrado::cuadrado() {return(a * b);}
{a = 13.37;} Float rectangu::perímetro()
cuadrado::cuadrado(float m) {return(2*a+2*b);}
{a = m; }
float cuadrado::area()
{return(a * a);}
void main() {
cuadrado C1, C2(31.43), C3(29.17); rectangu R1, R2(31.77,
53.73);
float n1,n2;
cout<<"El Area: del Cuadrado "<<C1.area()<<endl
<<“El perimetro del cuadrado ”<<C1.perimetro()<<endl
<<"El area del rectangulo: "<<R1.area()<<endl
<<“El perímetro del rectángulo”<<R1.perímetro()<<endl;
cout<<“Ingrese el lado del cuadrado ”;cin>>n1;
cuadrado C11(n1);
cout<<“El área= “<<C11.área()<<endl
cout<<“El perímetro= “<<C11.perímetro()<<endl;
system("pause");
}

También podría gustarte