【发布时间】:2016-09-19 05:26:17
【问题描述】:
我的班级中有简单的运算符重载
class Vec2
{
public:
Vec2(float x1,float y1)
{
x = x1;
y = y1;
}
float x;
float y;
};
class FOO {
private:
friend Vec2 operator*(const Vec2 &point1, const Vec2 &point2)
{
return Vec2(point1.x * point2.x, point1.y * point2.y);
}
Vec2 mul(Vec2 p);
};
Vec2 FOO::mul(Vec2 p)
{
Vec2 point = p * Vec2(1,-1);
return point;
}
但是这个乘法给了我这个错误:
operator*没有运算符匹配这些操作数
问题是我不能改变 Vec2 类,所以我需要全局运算符重载
【问题讨论】:
-
你为什么在
Vec2的class FOO内部重载*? -
我想在 FOO 中使用 * 运算符
-
这是什么意思?在哪里写呢?在标题中??