3

以下のコードでgetCount関数を呼び出すと、QT4.7.3コンパイラーがエラーを出します。ビルドエラー

'int Person :: getCount(const QString&)の'this'引数として'contPerson'を一時停止すると、修飾子が破棄されます

 bool Person::IsEligible(const QString& name)
 {
      int count = 0;
      count = getCount(name);
 }

 int Person::getCount(const QString& name)
 {
  int k =0
  return k;
 }
4

1 に答える 1

3

エラーは文字列引数の受け渡しの問題ではありません。const人がいるということです。例:

const Person p1;
Person p2;
p1.IsEligible("whatever"); //Error   
p2.IsEligible("whatever"); //Fine because p2 isn't const

IsEligibleで呼び出し可能であることが意図されている場合はconst Person、次のように言うことができます。

bool Person::IsEligible(const QString& name) const
 {
      int count = 0;
      count = getCount(name);
 }

(そして、あなたがあまり明確に示していない対応する宣言を変更します)、しかし私はそれがあなたが意図したことであると100%確信していません。

于 2012-04-23T18:53:07.680 に答える