复合赋值运算符重载



我已经看到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;

由于它是用于练习的,因此不会在此处发布实现。

最新更新