繁体   English   中英

object 具有与成员 function 不兼容的类型限定符。 为什么会出现这个错误?

[英]the object has type qualifiers that are not compatible with the member function. Why is this error showing up?

PVector operator + (const PVector& lhs, const PVector& rhs){
    return PVector(lhs.getX() + rhs.getX(), lhs.getY()+ rhs.getY());
}

当我使用 getX() 或 getY() function 时,在 lhs 和 rhs object 上出现错误。 function 不会对 object 进行任何更改,它只返回一个私有浮点值。 我想知道为什么会这样? 我在 c++ 中编程不是很擅长,但我想学习。

我可以从 lhs 和 rhs object 中删除 const 但我想知道为什么会出现此错误。

谢谢您的帮助。

此编译错误表明您尝试使用 const object 的(非常量)成员 function。

class A {
    void f(); 
}

const A a;
A.f(); // <- this will result in a cv qualifier compile error.

您可以通过将 function 设置为 const 来解决此问题

class A {
    void f() const; 
}

这意味着,此 function 调用不会更改任何成员变量。 因此,它可以应用于 const object。

您的 getX 和 getY 函数很可能需要为 const。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM