2014-04-18 2 views
2

내가 전에 question를 올렸습니다. 응답에서 코드를 확인할 수 있습니다.코드 내부의 친구 기능

내 질문은 게시물의 작성자는

swap(that); 

가 지금은 친구 기능의 개념과 익숙 복사 할당 연산자에이 이동 생성자

swap(*this,that); 

이 게시하고있다 그것에 대한 더 많은 읽기를 한 적이 있지만 스왑 메서드가 두 개의 매개 변수를 필요로하는 반면 두 번째 명령문에는 하나의 매개 변수 만있는 이유에 대해서는 여전히 당황 스럽습니다. 어떤 사람이 두 번째 성명을 분명히 할 수 있고 왜 그 하나의 매개 변수를 전달하는 이유가 있다면 고맙겠습니다.

답변

1

그 대답 중 다른 하나는 오타였습니다. 둘 다 있었음에 틀림 없음

swap(*this,that); 

조나단 Wakely가 실수를 지적했으며이를 수정했습니다.

당신이 몰랐던 어떤 마법도 없었습니다. 만세!

+0

여기서 교훈은 유효성을 수락하기 전에 코드를 컴파일해야한다는 것입니다. :) – keyser