항목 20: '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달'방식을 택하는 편이 대개 낫다.
'값에 의한 전달' 이란 무엇을 뜻하는 것일까? 함수에 전달되는 인자를 복사하여 전달되는 방식 '상수객체 참조자에 의한 전달'이란 무엇을 뜻하는 것일까? 포인터나 레퍼런스 즉 * 나 & 로 전달하는 방식을 뜻한다. 상수 이므로 const type * 나 const type& 을 뜻한다. 둘의 차이점이 있다면 무엇일까? 복사 할때 들어가는 비용에 차이가 있다. 값에 의한 전달은 전달되는 인자의 크기가 크면 클 수록 복사 되는 비용이 점점 많이 지불해야 할것이다. 하지만 상수객체 참조자는 주소값인 4Byte(64bit 환경에선 8Byte)의 비용만 지불하면 되기 때문에 그 비용은 일정하다. 또한 참조에 의한 전달 방식은 슬라이싱 문제(복사 손실 : Slicing problem)가 없어진다. 그렇다면 무엇이 ..
책 정리/Effective C++ 3판
2008. 6. 6. 23:27
최근댓글