기본 패턴
cpp
std::string name = "Mina";
std::string& alias = name;
const std::string& view = name;설명
- 참조는 기존 객체의 다른 이름처럼 동작하며, 포인터보다 문법이 간결합니다.
T&는 수정 가능한 참조,const T&는 읽기 전용 참조로 자주 쓰입니다.- 큰 객체를 함수에 넘길 때
const&를 쓰면 불필요한 복사를 줄일 수 있습니다. - 참조는 선언 즉시 초기화해야 하며, 다른 객체를 다시 가리키게 바꿀 수는 없습니다.
짧은 예제
cpp
#include <iostream>
#include <string>
void printName(const std::string& name) {
std::cout << name << "\n";
}
int main() {
std::string user = "RefDock";
printName(user);
}빠른 정리
| 항목 | 설명 |
|---|---|
T& | 수정 가능한 참조 |
const T& | 읽기 전용 참조 |
| 복사 절감 | 큰 객체 전달 비용을 낮춤 |
| 별칭 | 기존 객체를 다른 이름으로 접근 |
| 즉시 초기화 | 선언과 동시에 대상을 정해야 함 |
주의할 점
지역 변수에 대한 참조를 함수 밖으로 반환하면 수명이 끝난 객체를 가리키게 될 수 있습니다. 참조는 수명과 함께 이해해야 합니다.