次のクラスを定義しました。
class Action
{
public:
Action(){ _bAllDone = false; }
void AddMove( Move & m );
private:
std::deque<Move> _todo;
bool _bAllDone;
};
メンバー AddMove は次のように定義されます。
void Action::AddMove( Move & m )
{
_todo.push_back( m );
}
この関数への参照引数がない場合、コピー コンストラクターは 2 回呼び出されましたが、参照引数がある場合は 1 回しか呼び出されませんでした。コピー コンストラクターを 2 回ではなく 1 回だけ呼び出すのは、参照引数を使用する正当な理由ですか?