[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
2022-01-21 13:46:18
質問
Personというクラスがあります。
class Person {
string name;
long score;
public:
Person(string name="", long score=0);
void setName(string name);
void setScore(long score);
string getName();
long getScore();
};
別のクラスでは、こんなメソッドがあります。
void print() const {
for (int i=0; i< nPlayers; i++)
cout << "#" << i << ": " << people[i].getScore()//people is an array of person objects
<< " " << people[i].getName() << endl;
}
これは、人々の宣言です。
static const int size=8;
Person people[size];
これをコンパイルしようとすると、このようなエラーが発生します。
IntelliSense: the object has type qualifiers that are not compatible with the member function
の下に赤い線が入っています。 ピープル[i] printメソッドで
何が間違っているのでしょうか?
どうすればいいですか?
getName
が const になっていない。
getScore
は const ではありませんが
print
です。最初の2つは次のように const にします。
print
. constオブジェクトでconstでないメソッドを呼び出すことはできません。Person オブジェクトは他のクラスの直接のメンバーであり、const メソッドであるため、それらは const とみなされます。
一般的に、あなたが書いたすべてのメソッドを考慮し、それが何であるかであればconstを宣言する必要があります。のような単純なゲッターは
getScore
と
getName
は常にconstでなければなりません。
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] オブジェクトがメンバ関数と互換性のない型修飾子を持っている。
-
[解決済み] 型名の後の括弧は、newで違いがあるのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された