C++ のデフォルトの動作は常にコピーであることを読みました。したがって、データメンバーの get 関数もデータメンバーのコピーを返すと推測しています。
通常、これは正常に機能しますが、この場合、データメンバーの 1 つがマルチマップです。これは私が今持っているものです:
class Track {
private:
multimap<long, Note> noteList;
public:
multimap<long ,Note> getNoteList()
{
return noteList;
}
}
しかし、何らかの理由でこれが機能しません。呼び出しgetNoteList()
てもエラーは発生しませんが、コンソールでのプログラムの出力が停止します (アプリの実行中)。私がnoteList
公開すれば、すべてうまくいきます。
マルチマップと比較して、int、char、float などの通常の型に違いはありますか? これが機能しない理由は何ですか?どうすれば機能するゲッター関数を書くことができますか?