我已经看到Boost给了你做以下事情的可能性:
v*=c 其中 c 是双精度,v 是向量
作为练习,我如何正确重载 *=,其工作方式与上一个示例相同(右侧有双精度)?
这样的事情怎么样?
// in class
T& operator *= (double d)
{
member *= d;
return *this;
}
// outside of class
T operator * (T v, double d)
{
v *= d;
return v;
}
您的方法将如下所示:
inline vector operator *= (vector v, double &b);
它对于类向量来说是重载的,应该采用双精度,应该修改对象本身,并应该返回自身以用作v1 = v2*= 4.2;
由于它是用于练习的,因此不会在此处发布实现。