私は、C++のデフォルトの動作は常にコピーであることを読みました。だから、私はdatamemberのget関数もdatamemberのコピーを返すと思います。マルチマップのためのC++のゲッターとセッター
これは正常に動作しますが、この場合、私のdatamembersの1つはマルチマップです。これは私が今持っているものです:
class Track {
private:
multimap<long, Note> noteList;
public:
multimap<long ,Note> getNoteList()
{
return noteList;
}
}
しかし、これは動作しません。私がgetNoteList()
に電話すると、何のエラーも出ませんが、私のアプリケーションを実行しているときにコンソールのプログラムの出力が止まります。私がnoteList
を公開すれば、すべて正常に動作します。
マルチマップと比べて、int、char、floatなどの通常の型に違いはありますか?これがなぜ機能していないのか何らかの理由で、どうやってゲッター関数を書くことができますか?
アクセサーは、通常、常に良いアイデアです。この場合、noteListはコスト/読み取り専用です。 –