• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++ iteator const を使ったプログラムがコンパイルできない)

C++ iteator const を使ったプログラムがコンパイルできない

このQ&Aのポイント
  • C++のプログラムでiterator constを使っているが、コンパイルできない。
  • constの使い方に問題があるようだ。
  • 詳細なエラーメッセージが出ているが、その原因はよく分からない。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

std::list<Hoge*>::iterator i = l.begin(); ↓ std::list<Hoge*>::const_iterator i = l.begin(); エラーメッセージをよく読みましょう。

hi-mi-tsu
質問者

お礼

コンパイルできました。 ありがとうございます。 > std::list<Hoge*>::const_iterator i = l.begin(); こういう型があるのですね。 std::list<const Hoge*>::iterator std::list<Hoge* const>::iterator などとは試してみたのですが あと僕は、 Hoge * f() const { の意味を勘違いしていました。 これは、戻り値がconstということでなくて このメンバ関数の中でメンバ変数を変更できない という意味なんですね。 これなら、iterator がconstでないといけない理由に納得がいきます。