MAIN.
CPP
#include <iostream>
#include "triangulo.h"
#include "piramide.h"
using namespace std;
int main()
{
cout << "HERENCIA TRIANGULO-PIRAMIDE" << endl;
Piramide p;
p.Print();
return 0;
}
***********************************************************************************
*************************************
TRIANGULO.H
#ifndef TRIANGULO_H
#define TRIANGULO_H
//Declaracion de la clase Padre
class Triangulo
{
public:
Triangulo();
~Triangulo();
double Area();
double Perimetro();
void Print();
protected:
float arista;
float apotema;
float altura;
};
#endif // TRIANGULO_H
***********************************************************************************
************************************
PIRAMIDE.H
#ifndef PIRAMIDE_H
#define PIRAMIDE_H
//Declaracion de la clase Hija
class Piramide : public Triangulo
{
public:
Piramide();
~Piramide();
double AreaTotal();
double Volumen();
void Print(); // Polimorfismo
};
#endif // PIRAMIDE_H
***********************************************************************************
*************************************
TRIANGULO.CPP
#include "triangulo.h"
#include "piramide.h"
#include <cmath>
#include <iostream>
using namespace std;
Triangulo::Triangulo()
{
cout<<"Escriba la arista: "<<endl;
cin>>arista;
cout<<"Escriba el apotema: "<<endl;
cin>>apotema;
cout<<"Escriba la altura: "<<endl;
cin>>altura;
}
Triangulo::~Triangulo()
{
}
double Triangulo::Area()
{
return (arista*arista*sqrt(3))/4.0;
}
double Triangulo::Perimetro()
{
return 3*(arista);
}
void Triangulo::Print()
{
cout<<"\nArista del triangulo regular: "<< arista <<endl;
cout<<"Area del triangulo: "<<Area()<<endl;
cout<<"Perimetro del triangulo: "<<Perimetro()<<endl;
}
***********************************************************************************
*************************************
PIRAMIDE.CPP
#include "triangulo.h"
#include "piramide.h"
#include <iostream>
using namespace std;
Piramide::Piramide():Triangulo()
{
Piramide::~Piramide()
{
}
double Piramide::AreaTotal()
{
return (Area()+((3.0*apotema*arista)/2.0));
}
double Piramide::Volumen()
{
return (Area()*altura);
}
void Piramide::Print()
{
Triangulo::Print(); // Herencia invoca al padre
cout<<"Area Total = "<<AreaTotal()<<endl;
cout<<"Volumen = "<<Volumen()<<endl;
}