참조자

참조자

참조자는 선언할 때 반드시 대상을 정하고, 이후 다른 대상을 가리키도록 바꿀 수 없습니다.

별칭

같은 객체의 다른 이름

참조자를 통해 값을 바꾸면 원래 변수도 같은 객체이므로 함께 바뀝니다.

int& r = x
초기화

참조자 선언 대상

참조자는 비워 둘 수 없으므로 생성 시점에 반드시 유효한 객체에 묶입니다.

must bind
매개변수

복사 없이 전달

큰 객체를 함수에 넘길 때 참조를 쓰면 불필요한 복사가 사라집니다.

T& param
const 참조

읽기 전용 별칭

함수 안에서 값을 바꾸지 않겠다는 약속과 임시 객체 바인딩을 함께 표현합니다.

const T&
참조 반환 수명지역 변수에 대한 참조를 반환하면 함수 종료 후 사라진 객체를 가리키게 됩니다.
참조 전달 선택없을 수 있는 대상을 표현해야 하면 포인터, 항상 존재하는 별칭이면 참조가 자연스럽습니다.
가독성참조 매개변수가 값을 바꿀 수 있으면 함수 이름이나 const 여부로 의도를 분명히 해야 합니다.