class Burrito {
cout << "Burrito #1 has" << b1.getBeef()
<< "ounces of beef." << '\n';
#include <iostream.h>
private:
int amtbeef, amtbean;
public:
Burrito(int beef, int bean) {
amtbeef = beef;
amtbean = bean;
}
Burrito operator ++() {
amtbeef++; amtbean++;
return Burrito(amtbeef, amtbean);
}
int getBeef() { return amtbeef; }
};
main(){
Burrito b1(5,10);
b1++;
cout << "Now Burrito #1 has" << b1.getBeef()
<< "ounces of beef."<< '\n';
}
Vemos que sobrecargar un operador unario es muy similar a la forma en que
se hace para uno binario. De hecho, la única diferencia real es que
ahora no se pasa ningún parámetro al operador, ya que ahora
sólo hay un operando, que es el objeto cuyo operador se usa.
Hay si embargo una pequeña cuestión que debe tenerse en
cuenta cuando se sobrecargan los operadores ++ y --. Sabemos que b = ++a;
es diferente a b=a++;. La primera expresión equivale a a = a +1;
b = a;, mientras que la segunda es : b = a; a = a +1;. Sin embargo, cuando
se sobrecarga el operador ++ (o el --) no se puede hacer distinción
entre estas dos situaciones. Los dos usos del operador tienen el mismo
efecto.