C++11;
クラス A とクラス B の 2 つのクラスがあり、クラス A がクラス B のデータ メンバーを格納している場合、より効率的です。
1: タイプ B のオブジェクトとタイプ A を作成し、タイプ A のオブジェクトにタイプ B のオブジェクトへの const 参照を渡します。
A storage;
B object(1,2,3);
storage.add(object);
2: タイプ A のオブジェクトを作成し、タイプ B の名前のないオブジェクトを渡します。
A storage;
storage.add(B(1,2,3));
これらの呼び出しは、パフォーマンスの点で同等ですか?
ここで、タイプ A に渡すタイプ B のオブジェクトをタイプ A のベクトルに格納したいとします。ストレージ オブジェクトに既に作成されたオブジェクトへの参照を渡すか、型 A のオブジェクトに匿名オブジェクトを直接渡すかに関係なく、storage.add() を呼び出すたびに型 B のコピーを 2 つ作成することになりますか?
B オブジェクトのベクトルを A 型に格納する場合、B 型の名前のないオブジェクトを渡し、それらをベクトルに格納し、ベクトル要素へのポインタを返すか、または B 型のオブジェクトを作成する方が効率的でしょうか? 、ポインタを storage.add() に渡し、タイプ B のオブジェクトをポインタのベクトルに格納しますか?
私の意図が明確になったことを願っています。私の意図が明確でない場合は、コード例を投稿します。オブジェクトを渡す最も効率的な方法は、ストレージ クラスへの呼び出しを介してオブジェクトを返す必要がある場合です。