私のクラスにLastQueryInfo lastQuery
というオブジェクトがあります。このオブジェクトが変わる度に、それをhistory
というベクトルに加えます。要素をベクトルに追加するときに、オブジェクトのコピーが作成されることを知る方法を教えてください。
最初に、私がhistory.push_back(lastQuery)
を実行したとき、私は何が起こるのか分からなかった。ベクターがオブジェクトのコピーを作るだろうか?またはそれを参照し続けるつもりですか?ですから、後でlastQueryを変更すると、履歴ベクトル内のすべてのオブジェクトが変更されることになります(それらが参照であると仮定します)?
いくつかのテストの後、history.push_back(lastQuery)
が実際にオブジェクトのコピーを作成し、それをベクターに追加することがわかりました。しかし、どのようなテストをせずにそれを知ることができますか? C++がいつコピーを作成するのか、それが実際のオブジェクトを追加するのかを私はどのように知ることができますか?常に