我不完全确定如何描述我的问题。
基本上我有一个函数来检查我的矩形是否包含不同的矩形,但是,当我尝试使用getX
和getY
等函数时,我遇到了:{{1 }}
我的功能如下。
Error: the object has type qualifiers that are not compatible with the member function object type is: const Rectangle2D
我的所有const bool Rectangle2D::contains(const Rectangle2D &r) {
const double x = r.getX();
const double y = r.getY();
const double width = r.getWidth();
const double height = r.getHeight();
}
函数都是常量,例如:
get
在我的班级中,该函数定义为const double Rectangle2D::getX() {
return x;
}
。
如果需要更多信息,请与我们联系。如果有人可以帮助我或指出我正确的方向,我将不胜感激。
答案 0 :(得分:4)
您需要在函数名称和参数列表之后,在大括号或分号之前放置const。所以在你班上你应该有
double getX() const;
然后当你实现它时,你应该
double Rectangle2D::getX() const {
return x;
}
你需要对contains函数和你想在const Rectangle2D上使用的任何其他函数做同样的事情。
答案 1 :(得分:2)
这样做:
const double Rectangle2D::getX() {
return x;
}
这是一个非const 函数,它返回一个常量double。
要使其成为const函数,请执行以下操作:
double Rectangle2D::getX() const {
return x;
}