1

Policy次の関数を持つクラスがあります。

double Policy::meanResponse();

Policyソートしたいオブジェクトのベクトル( myPolicies)があり、の値に基づいてソートしたいとしますPolicy::meanResponse()。私は以下を試しました:

bool compare_by_function(const Policy& p1, const Policy& p2)
{
    return ( p1.meanResponse() < p2.meanResponse() );
}

sort(myPolicies.begin(), myPolicies.end(), compare_by_function);

しかし、エラーが発生します:

「エラー:「constPolicy」を「doublePolicy :: meanResponse()」の「this」引数として渡すと、修飾子が破棄されます」

この場合、誰かが正しくソートする方法を説明できますか?

4

1 に答える 1

4

meanResponseをconstに変更してみましたか?

double Policy::meanResponse()const;

ポリシーオブジェクトをconst参照を使用してcompare関数に渡すため、それらに対して非constメソッドを呼び出すことはできません。

http://www.parashift.com/c++-faq-lite/const-member-fns.html

于 2012-08-23T02:05:19.690 に答える