#include class poligono { public: float ar; float per; void area(float a); void perimetro(float p); }; void poligono::area(float a) {cout<<"El area es:"<>base>>altura; return; } void triangulo::formula1(void) {ar=((base*altura)/2); return ar;} void triangulo::formula2(void) {per=(base*3); return per;} class cuadrado:public poligono {float base; public: void leer_datos(void); float formula1(void); float formula2(void); }; void cuadrado::leer_datos(void) {cout<<"Dar base "<>base; return; } void cuadrado::formula1(void) {ar=(base*base); return ar;} void cuadrado::formula2(void) {per=(base*4); return per;} class rectangulo:public poligono {float base,altura; public: void leer_datos(void); float formula1(void); float formula2(void); }; void rectangulo::leer_datos(void) {cout<<"Dar base y altura"<>base>>altura<>base>>radio; return; } void pentagono::formula1(void) {ar=((base*radio)/2); return ar;} void pentagono::formula2(void) {per=(base*5); return per;} int main() { int opc; float x,y; //instanciar clases poligono pol; triangulo t; cuadrado c; rectangulo r; pentagono p; do { cout<<"Herencia de Area y Perimetro"<> opc; switch(opc) { case 1: t.leer_datos(); x=t.formula1(); y=t.formula2(); pol.area(x); pol.perimetro(y); break; case 2: c.leer_datos(); x=c.formula1(); y=c.formula2(); pol.area(x); pol.perimetro(y); break; case 3: r.leer_datos(); x=r.formula1(); y=r.formula2(); pol.area(x); pol.perimetro(y); break; case 4: p.leer_datos(); x=p.formula1(); y=p.formula2(); pol.area(x); pol.perimetro(y); break; }//fin siwtch }while(opc!=5); return 0; }