Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda con sobrecarga pre y post del ++

Estas en el tema de Duda con sobrecarga pre y post del ++ en el foro de Programación General en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 08/11/2005, 07:57
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Pregunta Duda con sobrecarga pre y post del ++

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!
  #2 (permalink)  
Antiguo 08/11/2005, 13:51
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Tal vez sea esto lo que queres hacer, no estoy muy seguro:

Código:
rectangulo& rectangulo::operator ++ ()
{
  area *a = (area*)this;
  a->operator++();
  return *this;	
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 08/11/2005, 14:43
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Exactamente era eso... Muchas gracias, me voy a poner a analizarlo (aún me cuesta entender la filosofía de los objetos).
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:48.