Tengo una clase base llamada "area" la cual tiene sobrecargado el ++ como pre y post orden. También tengo una clase derivada "rectangulo" que hereda los atributos "base" y "altura" de la clase madre. En "rectangulo" tengo también la intención de sobrecargar el ++, pero me da la sensación que no es necesario reescribir todo el código de la sobrecarga, y que es posible hacer esa sobrecarga mediante "cast".
Paso a pegarles fragmentos de código:
Código:
Sus metodos son:class area { protected: float base, altura; public: area() { base = 0; altura = 0; } area(float, float); area(area&); virtual float calculo_area(); friend ostream& operator << (ostream&, const area&); friend istream& operator >> (istream&, area&); area operator + (const area&) const; area& operator = (const area&); area& operator ++ (); // Pre area operator ++ (int); // Post. };
Código:
Y ahora la clase rectangulo:area& area::operator ++ () { base++; altura++; return *this; } area area::operator ++ (int) { area auxiliar(*this); base++; altura++; return auxiliar; }
Código:
Bueno me gustaría saber si es posible no reescribir la sobrecarga Pre y hacerla mediante cast o algo similar.class rectangulo : public area { public: rectangulo() {} rectangulo(float base, float altura) : area(base, altura) {} float calculo_area(); friend ostream& operator << (ostream&, const rectangulo&); friend istream& operator >> (istream&, rectangulo&); rectangulo& operator ++ (); // Pre };
Desde ya muchas gracias. Saludos!