如何在 C++ 中重载一元减运算符?
我正在实现向量类,我需要得到一些向量的反面。是否可以使用运算符重载来定义此方法?
这就是我的意思:
Vector2f vector1 = -vector2;
这就是我希望这个操作员完成的任务:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
I'm implementing vector class and I need to get an opposite of some vector. Is it possible to define this method using operator overloading?
Here's what I mean:
Vector2f vector1 = -vector2;
Here's what I want this operator to accomplish:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,但您不向它提供参数:
请注意,您不应返回 *this。一元 - 运算符需要创建一个全新的 Vector 值,而不是更改它所应用的对象,因此您的代码可能看起来像这样:
Yes, but you don't provide it with a parameter:
Note that you should not return *this. The unary - operator needs to create a brand new Vector value, not change the thing it is applied to, so your code may want to look something like this:
可以
在班级内,也可以在班级外。我的示例位于命名空间范围内。
It's
Can be within the class, or outside. My sample is in namespace scope.