0

自分の問題をどのように説明すればよいのか、まったくわかりません。

基本的に、長方形に別の長方形が含まれているかどうかを確認する関数がありますが、次のような関数を使用しようとすると、次のようにgetXなりgetYます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;
}

const Rectangle2D で使用できるようにする、contains 関数およびその他の関数についても同じことを行う必要があります。

于 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 に答える