c++ - unarios - sobrecarga del operador++




¿Cómo sobrecargar el operador unario negativo en C++? (2)

Estoy implementando clases vectoriales y necesito obtener un opuesto a algún vector. ¿Es posible definir este método utilizando la sobrecarga del operador?

Esto es lo que quiero decir:

Vector2f vector1 = -vector2;

Esto es lo que quiero que este operador logre:

Vector2f& oppositeVector(const Vector2f &_vector)
{
 x = -_vector.getX();
 y = -_vector.getY();

 return *this;
}

Gracias.


Sí, pero no le proporciona un parámetro:

class Vector {
   ...
   Vector operator-()  {
     // your code here
   }
};

Tenga en cuenta que no debe devolver * esto. El operador unario necesita crear un nuevo valor de Vector, no cambiar el elemento al que se aplica, por lo que su código puede querer verse de la siguiente manera:

class Vector {
   ...
   Vector operator-() const {
      Vector v;
      v.x = -x;
      v.y = -y;
      return v;
   }
};

Solo buscaba la respuesta para esto, mientras diseñaba una biblioteca de aritmética de alta precisión en C ++ (basada en GMP). Al contrario de lo que se ha dicho, ese único "-" tiene que devolver un nuevo valor, este código funciona para mí:

bigdecimal& bigdecimal::operator - () {
    mpf_neg(this->x, this->x);//set left mpf_t var to -right
    return *this;
}






operator-overloading