이 함수에서 참조 인수를 사용하면 어떤 이점이 있습니까?
다음 클래스를 정의했습니다.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);
}
이 함수에 대한 참조 인수가 없으면 복사 생성자가 두 번 호출되었습니다. 참조 인수는 한 번만 호출되었습니다. 복사본 생성자를 참조 인수를 사용하는 두 번 이유 대신 한 번만 호출합니까?
괜찮은 대답이고, const로 전달하는 경우 +1입니다. –
또 다른 중요한 이유는 (코드가 이미 참조를 수정하지 않도록 설계 되었다면 더 중요한 이유가 있다고 말하고 싶다.) const에 대한 참조로 전달하려면 일시적 매개 변수를 매개 변수로 허용하는 것이 좋다 (예 :'action.AddMove Move (/ * ... * /));''AddMove'가'const Move &'를 취하면 유효하지만'Move &'만하면 유효하지 않습니다) – GRB