PVector operator + (const PVector& lhs, const PVector& rhs){
return PVector(lhs.getX() + rhs.getX(), lhs.getY()+ rhs.getY());
}
当我使用 getX(( 或 getY(( 函数时,我在 lhs 和 rhs 对象上出现错误。该函数不会对对象进行任何更改,它只返回一个私有浮点值。我想知道为什么会这样?我不太擅长用 c++ 编程,但我想学习。
我可以从 lhs 和 rhs 对象中删除常量,但我想知道为什么会出现此错误。
感谢您的协助。
此编译错误表明您尝试使用 const 对象的(非常量(成员函数。
class A {
void f();
}
const A a;
A.f(); // <- this will result in a cv qualifier compile error.
您可以通过将函数设置为 const 来解决此问题
class A {
void f() const;
}
这意味着,此函数调用不会更改任何成员变量。因此,它可以应用于常量对象。
很可能你的 getX 和 getY 函数需要是常量。