Hola chic@s, mi tema es el siguiente (C++):
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:
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.
};
Sus metodos son:
Código:
area& area::operator ++ ()
{
base++;
altura++;
return *this;
}
area area::operator ++ (int)
{
area auxiliar(*this);
base++;
altura++;
return auxiliar;
}
Y ahora la clase rectangulo:
Código:
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
};
Bueno me gustaría saber si es posible no reescribir la sobrecarga Pre y hacerla mediante cast o algo similar.
Desde ya muchas gracias. Saludos!