class ClaseBase { ... public ClaseBase (argumentos); ... } ClaseBase :: (argumentos); { ... //constructor de la claseBase } class ClaseDerivada { ... public ClaseDerivada (argumentos ClaseBase, argumentos ClaseDerivada); } ClaseDerivada ::: ClaseDerivada (argumentos ClaseBase, argumentos ClaseDerivada) : ClaseBase (Argumentos ClaseBase) { ... } //Herencia con constructores #include const float PI = 3.141592; class Circulo { float radio; public: Circulo(float); void DefineRadio(float); float Radio(void); float Area(void); float Circunferencia(void); }; Circulo::Circulo(float r) //Constructor { radio = r; } 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: Cilindro(float, float); void DefineAltura(float); float Altura(void); float Volumen(void); float Superficie(void); }; Cilindro::Cilindro(float r, float h) : Circulo(r) { altura = h; } //Constructor llama a constructor de clase base 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: CilindroHueco(float, float, float); void DefineRadioInterno(float); float RadioInterno(void); float Volumen(void); float Superficie(void); }; CilindroHueco::CilindroHueco(float r, float h, float ri) : Cilindro(r, h) { radioInterno = ri; } void CilindroHueco::DefineRadioInterno(float ri) { radioInterno = ri; } float CilindroHueco::RadioInterno(void) { return radioInterno; } float CilindroHueco::Volumen(void) { return PI*Altura()*(Radio()*Radio() - RadioInterno()*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(1); Cilindro Cil(1,2); CilindroHueco CilH(1,2,0.5); cout << "Circulo :" << endl; cout << " radio = " << Cir.Radio() << endl; cout << " rea = " << Cir.Area() <