#include const float PI = 3.141592; class Circulo { float radio; public: void DefineRadio(float); float Radio(void); float Area(void); float Circunferencia(void); }; void Circulo::DefineRadio(float r) { radio = r; } float Circulo::Radio(void) { return radio; } float Circulo::Area(void) { return PI*radio*radio; } float Circulo::Circunferencia(void) { return 2*PI*radio; } class Cilindro:public Circulo { float altura; public: void DefineAltura(float); float Altura(void); float Volumen(void); float Superficie(void); }; void Cilindro::DefineAltura(float h) { altura = h; } float Cilindro::Altura(void) { return altura; } float Cilindro::Volumen(void) { return altura*Area(); } float Cilindro::Superficie(void) { return 2*Area() + altura*Circunferencia(); } class CilindroHueco : public Cilindro { float radioInterno; public: void DefineRadioInterno(float); float RadioInterno(void); float Volumen(void); float Superficie(void); }; void CilindroHueco::DefineRadioInterno(float ri) { radioInterno = ri; } float CilindroHueco::RadioInterno(void) { return radioInterno; } float CilindroHueco::Volumen(void) { return PI*Altura()*(Radio()*Radio() - Radio Interno()*RadioInterno()); //tener en cuenta que no se puede accesar a radio y altura } float CilindroHueco::Superficie(void) { return 2*PI*( Radio()*Radio() - RadioInterno()*RadioInterno() ) + Altura()*Circunferencia() + Altura()*2*PI*RadioInterno(); } void main (void) { Circulo Cir; Cilindro Cil; CilindroHueco CilH; Cir.DefineRadio(1); cout << "Circulo :" << endl; cout << "radio =" << Cir.Radio() << endl; cout << "rea =" << Cir.Area() <