【发布时间】:2015-04-29 10:06:29
【问题描述】:
我已经看到 Boost 给了你这样做的可能性:
v*=c 其中 c 是双精度数,v 是向量
作为练习,我怎样才能正确地重载 *=,它的工作方式与上一个示例相同(右侧为 double)?
【问题讨论】:
标签: c++ vector operator-overloading
我已经看到 Boost 给了你这样做的可能性:
v*=c 其中 c 是双精度数,v 是向量
作为练习,我怎样才能正确地重载 *=,它的工作方式与上一个示例相同(右侧为 double)?
【问题讨论】:
标签: c++ vector operator-overloading
这样的事情怎么样?
// in class
T& operator *= (double d)
{
member *= d;
return *this;
}
// outside of class
T operator * (T v, double d)
{
v *= d;
return v;
}
【讨论】:
=
operator *。
v1 = v * 4.2;时不应该发生
您的方法如下所示:
inline vector operator *= (vector v, double &b);
它为类向量重载,应采用双精度,应修改对象本身并应返回自身以用作v1 = v2*= 4.2;
由于是练习,这里就不贴实现了。
【讨论】: