J'implémente une classe vectorielle et j'ai besoin d'obtenir un contraire d'un vecteur. Est-il possible de définir cette méthode en utilisant une surcharge d'opérateur?
Voici ce que je veux dire:
Vector2f vector1 = -vector2;
Voici ce que je veux que cet opérateur accomplisse:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
Merci.
Oui, mais vous ne lui fournissez pas de paramètre:
class Vector {
...
Vector operator-() {
// your code here
}
};
Notez que vous ne devez pas retourner * ceci. L'opérateur unaire doit créer une toute nouvelle valeur vectorielle, pas changer la chose à laquelle il est appliqué, donc votre code peut vouloir ressembler à ceci:
class Vector {
...
Vector operator-() const {
Vector v;
v.x = -x;
v.y = -y;
return v;
}
};
Ses
Vector2f operator-(const Vector2f& in) {
return Vector2f(-in.x,-in.y);
}
Peut être dans la classe ou à l'extérieur. Mon échantillon est dans la portée de l'espace de noms.