Ily*_*ski 69 c++ operator-overloading
我正在实现向量类,我需要得到一些向量的反面.是否可以使用运算符重载定义此方法?
这就是我的意思:
Vector2f vector1 = -vector2;
Run Code Online (Sandbox Code Playgroud)
这就是我希望这个运算符完成的事情:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
小智 118
是的,但您没有为它提供参数:
class Vector {
...
Vector operator-() {
// your code here
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,您不应该返回*this.一元 - 运算符需要创建一个全新的Vector值,而不是更改它应用的东西,所以你的代码可能想看起来像这样:
class Vector {
...
Vector operator-() const {
Vector v;
v.x = -x;
v.y = -y;
return v;
}
};
Run Code Online (Sandbox Code Playgroud)
Ale*_*ler 27
它的
Vector2f operator-(const Vector2f& in) {
return Vector2f(-in.x,-in.y);
}
Run Code Online (Sandbox Code Playgroud)
可以在班级内,也可以在外面.我的示例位于命名空间范围内.