我正在尝试重载=, + +=
运算符,而前两个很好,但是operator+=()
函数产生错误。
这是三个代码:
重载'='运算符
inline vec3& operator = (vec3& ob) {
mX = ob.getX();
mY = ob.getY();
mZ = ob.getZ();
return *this;
}
重载“ +”运算符
vec3 vec3::operator + (const vec3& ob) {
vec3 vec(mX + ob.getX(), mY + ob.getY(), mZ + ob.getZ());
return vec;
}
重载'+ ='运算符
vec3& vec3::operator += (const vec3& obj) {
*this = *this + obj;
return *this;
}
错误
binary '=': no operator found which takes a right-hand operand of type 'vec3'
答案 0 :(得分:0)
赋值运算符应为const:
vec3& operator= (const vec3& ob)