참조자

참조자

초기화 후 다른 대상을 가리키도록 바꿀 수 없고, 포인터보다 사용 문법이 자연스러워 매개변수 전달에 자주 쓰입니다.

별칭

같은 객체를 다른 이름으로 사용

int& ref = value는 ref와 value가 같은 저장 공간을 가리키게 합니다.

int& ref
초기화 필수

비어 있는 참조자는 없음

참조자는 선언할 때 반드시 유효한 객체와 연결되어야 합니다.

int& r = x
매개변수

복사 없이 전달

큰 객체를 함수에 넘길 때 참조를 쓰면 복사 비용을 줄일 수 있습니다.

void f(T& x)
const 참조

읽기 전용 별칭

수정하지 않을 큰 값이나 임시 객체를 복사 없이 받는 경로입니다.

const T&
수정 여부함수가 값을 바꾸면 T&, 읽기만 하면 const T&를 고려합니다.
널 가능성없음을 표현해야 한다면 참조자보다 포인터나 선택 타입이 더 맞습니다.
수명참조자가 원본 객체보다 오래 남지 않도록 반환과 저장 위치를 조심합니다.