复合赋值运算符重载
Compound assignment operator overloading
我已经看到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;
由于它是用于练习的,因此不会在此处发布实现。
相关文章:
- 为什么初始化时没有调用重载赋值运算符?
- 在类外重载赋值运算符
- 重载赋值运算符函数和复制构造函数中的错误
- 为多个签名使用相同的代码重载赋值运算符?
- 错误消息:使用复制构造函数和重载赋值运算符
- 类模板中的重载赋值运算符
- C++库类的重载赋值运算符
- 为什么为单个赋值操作调用复制构造函数和重载赋值运算符
- 如何重载赋值运算符以满足 ob1=ob2=ob3(ob1,ob2,ob3 是同一类的对象)
- 带有非类型参数的C++模板类:如何重载赋值运算符
- C++重载赋值运算符在不相关的类中被调用
- C++重载赋值运算符声明中做什么?
- 在c++中操作重载赋值运算符
- 如何避免重载赋值运算符将右值转换为左值
- 重载赋值运算符的问题
- 复制构造函数、重载赋值运算符和deepCopy
- 重载赋值运算符带下标运算符
- 如何在不重载赋值运算符的情况下运行此代码
- 重载赋值运算符 - 多态容器
- 如何重载赋值运算符以允许我的类等于基元类型,例如'int'