我正在实现一个向量类,需要获取某个向量的相反向量。是否可以使用运算符重载定义此方法?
这是我的意思:
Vector2f vector1 = -vector2;
这是我希望这个运算符完成的任务:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
谢谢。
我正在实现一个向量类,需要获取某个向量的相反向量。是否可以使用运算符重载定义此方法?
这是我的意思:
Vector2f vector1 = -vector2;
这是我希望这个运算符完成的任务:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
谢谢。
class Vector {
...
Vector operator-() {
// your code here
}
};
class Vector {
...
Vector operator-() const {
Vector v;
v.x = -x;
v.y = -y;
return v;
}
};
-
也可以被一个独立的函数重载,这将与原帖中使用的oppositeVector函数非常相似。 - AnT stands with Russia它是
Vector2f operator-(const Vector2f& in) {
return Vector2f(-in.x,-in.y);
}
可以在类内或类外定义。我的示例是在命名空间作用域中。
Vector2f
作为参数,因为它是在命名空间范围内定义的,而不是类范围内。我的回答是正确的。 - Alexander Gessler
.getX()
和.getY()
。 - bobobobo