0

私はC++とRでの統計計算(Eubank and Kupresanin、2012)という本を読んでいて、次の演習があります。

"3.27。2Xつの整数メンバー要素を持つa構造体のコードを記述します。b構造体の1つのメソッドには、プロトタイプが必要です。

bool compare(const& X)

このcompareメソッドは、2つのオブジェクトを比較Xし、メンバーの値が小さいオブジェクトを返す必要がaあります。」

ここでの問題は、何を表すのかがわからないことconst& Xです。また、g ++コンパイラもエラーが発生するため、それを理解していないようです。それは何かを意味するのでしょうか、それとも単なるタイプミスですか?const&部分を無視する私の解決策は、次のようになります。

struct X{
    int a;
    int b;
    X(int A, int B);
    bool compare(X x);
};

X::X(int A, int B){
    a=A;
    b=B;
}

bool X::compare(X x){
    if(x.a>(*this).a){
        return true;
    } else return false;
}

int main(){
    X y(5,0);
    X z(2,3);
    if(y.compare(z))
        cout << "y.a = "<<y.a<< " which is larger than z.a = "<< z.a<<endl;
    else
        cout << "y.a = "<<y.a<< " which is smaller than z.a = "<< z.a<<endl;
    return 0;
}

これは問題なく動作するようです。

4

3 に答える 3

3

正しく書き写せばタイプミスがありますが、その存在はそうで&はありません。そのはず:

bool compare(const X&)

参照型です。つまり、const X&は「への参照const X」です。参照型パラメーターを使用するということXは、渡されたオブジェクトがコピーされないことを意味します。関数内に表示されるオブジェクト、外部から渡されたオブジェクトです。

于 2013-02-19T13:35:33.593 に答える
2

それはおそらくタイプミスでありconst X &、定数への参照のように、おそらくそれを意味していましたX

bool compare(const X &)
于 2013-02-19T13:36:18.827 に答える
1

構文

bool compare(const X&){ }

Xへの定数「参照」を意味します。参照は変数のエイリアスです。ポインタのように機能しますが、その存続期間中は参照するオブジェクトに接続されます。ポインタを使用する場合と同じように、関数に渡されるオブジェクトを変更します。

于 2013-02-19T13:37:07.453 に答える