0

我不完全确定如何描述我的问题。

基本上我有一个函数来检查我的矩形是否包含不同的矩形,但是,当我尝试使用我的函数时getXgetY我遇到了: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;
}

在我的课堂上,它的功能被定义为const bool contains(const Rectangle2D &r).

如果需要更多信息,请告诉我。如果有人可以帮助我或指出正确的方向,我将不胜感激。

4

2 回答 2

4

您需要将 const 放在函数名称和参数列表之后,大括号或分号之前。所以在你的课上你应该有

double getX() const;

然后当你实现它时,你应该有

double Rectangle2D::getX() const {
    return x;
}

您需要对 contains 函数和您希望能够在 const Rectangle2D 上使用的任何其他函数执行相同的操作。

于 2013-02-25T03:58:20.113 回答
2

这样做:

const double Rectangle2D::getX() {
    return x;
}

这是一个非常量函数,它返回一个常量 double。

要使其成为 const 函数,请执行以下操作:

double Rectangle2D::getX() const {
  return x;
}
于 2013-02-25T03:58:09.090 回答