const reference

const 참조는 큰 객체를 복사하지 않고 읽기만 하겠다는 계약이다

함수가 입력을 관찰만 한다면 const 참조는 복사 비용을 줄이면서도 원본 변경을 막습니다. 그래서 문자열, 벡터, 사용자 정의 객체를 받을 때 자주 사용합니다.

호출자

std::string name

큰 객체를 보유합니다.

함수 매개변수

const std::string& name

복사 없이 읽고, 수정은 금지합니다.

큰 객체복사 비용이 큰 값을 전달할 때 효과가 큽니다.
읽기 전용함수 본문에서 대입이나 변경 호출을 막습니다.
임시 객체리터럴과 계산 결과도 안전하게 받을 수 있습니다.
작은 기본형int처럼 작은 값은 값 전달이 더 단순할 수 있습니다.
매개변수가 값을 바꾸지 않고 관찰만 한다면 먼저 const 참조를 떠올리고, 작은 값은 값 전달과 비교합니다.