该对象具有与成员函数不兼容的类型限定符.为什么会出现此错误?


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 函数需要是常量。

相关内容

最新更新