我看过Boost给你的可能性:
v * = c其中c是double,v是向量
作为一个练习,我怎样才能正确地重载* =,这与上一个例子的方式相同(右边是double)?
答案 0 :(得分:2)
这样的事情怎么样?
// in class
T& operator *= (double d)
{
member *= d;
return *this;
}
// outside of class
T operator * (T v, double d)
{
v *= d;
return v;
}
答案 1 :(得分:0)
您的方法如下:
inline vector operator *= (vector v, double &b);
它为类向量重载,应该采用double,应该修改对象本身并且应该返回自己以用作v1 = v2*= 4.2;
因为它是一个练习,所以你不会在这里发布实现。