Академический Документы
Профессиональный Документы
Культура Документы
#include<stdlib.h>
#include<iostream>
#include<math.h>
using namespace std;
const double PI=2.0*asin(1.0);
class Circulo
{
protected:
double radio;
public:
Circulo (double=1.0); //constructor con mismo nombre que la clase
double calcval();
};
//implementacion de la clase
//constructor
Circulo::Circulo(double r)
{
radio = r;
}
//Calculo del area de un circulo
double Circulo::calcval()
{ return(PI*radio*radio); }
//declaracion de la clase para la clase derivada
//cilindro que se deriva del circulo
class cilindro:public Circulo
{
protected:
double largo; //miembro de dato adicional
public: //miembros de funciones adicionales
cilindro(double r=1.0, double l=1.0): Circulo(r), largo(l){}
double calcval(); //aqui se nota la herencia
};
// Seccion de implementacion para Cilindro
double cilindro::calcval() // clculo del volumen
{ return (largo*Circulo::calcval()); //se llama a la funcion base }
int main()
{
Circulo circulo_1, circulo_2(2); //creamos dos objetos Circulo
cilindro cilindro_1(3,4); //creamos un objeto Cilindro
cout<<"El area del circulo_1 es:"<<circulo_1.calcval()<< endl;
cout<<"\nEl area del circulo_2 es:"<<circulo_2.calcval()<< endl;
cout<<"\nEl volumen del cilindro_1 es:"<<cilindro_1.calcval()<< endl;
circulo_1= cilindro_1; //asignamos un cilindro a un circulo
cout<<"\nEl area del circulo_1 es ahora:"<<circulo_1.calcval()<< endl;
system("PAUSE");
return EXIT_SUCCESS;
}
HERENCIA CUADRADO-CUBO
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
class Cuadrado
{
protected:
double arista;
public:
Cuadrado (double = 1.0); //constructor con mismo nombre que la clase
double calcval();
};
//implementacion de la clase
//constructor
Cuadrado::Cuadrado(double ar)
{
arista = ar;
}
//Calculo del area de un cuadrado
double Cuadrado::calcval()
{ return(arista*arista); }
//declaracion de la clase para la clase derivada
//cubo que se deriva del cuadrado
class Cubo:public Cuadrado
{
protected:
double altura; //miembro de dato adicional
public: //miembros de funciones adicionales
Cubo(double ar=1.0, double a=1.0): Cuadrado(ar), altura(a){}
double calcval(); //aqui se nota la herencia
};
// Seccion de implementacion para Cubo
double Cubo::calcval() // clculo del volumen
{ return (altura*Cuadrado::calcval()); //se llama a la funcion base }
int main()
{
Cuadrado cuadrado_1, cuadrado_2(4); //creamos dos objetos Cuadrado
Cubo cubo_1(5,8); //creamos un objeto Cubo
float ar;
cout<<"El area del cuadrado_1 es:"<<cuadrado_1.calcval()<< endl;
cout<<"El area del cuadrado_2 es:"<<cuadrado_2.calcval()<< endl;
cout<<"\nEl volumen del cubo_1 es:"<<cubo_1.calcval()<< endl;
cuadrado_1= cubo_1; //asignamos un cubo a un cuadrado
cout<<"\nEl area del cuadrado_1 es ahora:"<<cuadrado_1.calcval()<< endl;
system("PAUSE");
return EXIT_SUCCESS;
}
RESULTADO DE LA FUNCION UNO
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
//Declaracion de la clase para la clase base
class Uno
{
protected:
double a;
public:
Uno(double = 2.0); //constructor
virtual double f1(double); // una funcin miembro
double f2(double); //otra funcin miembro
};
//implementacn de la clase para Uno
Uno::Uno (double val) //constructor
{ a= val; }
double Uno::f1(double num) // funcin miembro
{ return(num/2); }
double Uno::f2(double num) //otra funcin miembro
{
return (pow(f1(num),2)); //f1() al cuadrado
}
//Declaracin de la clase para la clase derivada
class Dos:public Uno
{
public:
virtual double f1(double); //esto anula a f1() de la clase Uno
};
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class B { // Clase-base
public:
virtual int fun(int x) {return x * x;} // virtual
};
class D1 : public B { // Clase derivada-1
public:
int fun (int x) {return x + 10;} // virtual
};
class D2 : public B { // Clase derivada-2
public:
int fun (int x) {return x + 15;} // virtual
};
int main()
{
B b;
D1 d1;
D2 d2;
int h;
cout << "Ingresa un valor entero positivo:";
cin >> h;
cout << "El valor es: " << b.fun(h) << endl;
cout << "El valor es: " << d1.fun(h) << endl;
cout << "El valor es: " << d2.fun(h) << endl;
cout << "El valor es: " << d1.B::fun(h) << endl;
system("PAUSE");
}
//Definicin de la clase Punto
#ifndef PUNTO_H
#define PUNTO_H
#include<iostream>
using std::ostream;
class Punto{
friend ostream &operator<<(ostream &, const Punto &);
public:
Punto(int=0, int=0); //constructor predeterminado
void establecePunto(int, int); //establece coordenadas
int obtieneX() const{return x;} //obtiene la coordenada x
int obtieneY() const{return y;} //obtiene la coordenada y
protected: //accesible para las clases derivadas
int x, y; //las coordenadas x y y de Punto
}; //fin de la clase Punto
#endif
#include<iostream>
using std::ostream;
#include<iomanip>
using std::ios;
using std::setiosflags;
using std::setprecision;
#include "Punto.h"
class Circulo:public Punto{//Circulo hereda de Punto
friend ostream &operator<<(ostream &, const Circulo &);
public:
//constructor predeterminado
Circulo(double r=0.0, int x=0, int y=0);
void estableceRadio(double); //establece el radio
double obtieneRadio()const; //devuelve el radio
double area()const; //calcula el rea
protected:
double radio;
}; //fin de la clase Circulo
#endif
//funciones miembro para la clase Punto
#include<iostream>
#include "Punto.h"