C++
C++ 면접 질문) "어떤 때 reference 쓰고 어떤 때 value를 써야 할까요?"
전문 컨설턴트
2025. 1. 7. 12:17
매개변수로 어떤 때 reference를 쓰고 어떤 때 value를 쓰는지 먼저 말씀드릴께요.
reference를 쓰는 기준:
- 복사 비용이 클 때
void sub_process(const std::string& text) {
// read text without copying
}
- 원본 수정이 필요 할 때
void modify_value(int& value) {
value += 1; // access value by reference
}
value를 쓰는 기준:
- const reference 안쓰고 간결하게 사용 (복사 비용이 거의 없으므로)
int use_without_using_const(int value) {
return value + 1;
}
int use_using_const_safely(const int& value) {
return value + 1;
}
- 복사 해서 쓰고 싶을 때
void copy_and_change(std::string str) {
str.append("def");
}
반환값으로 어떤 때 reference를 쓰고 어떤 때 value를 쓰는지 먼저 말씀드릴께요.
reference를 쓰는 기준:
- 수정 가능한 기존 객체 반환 시
Object& get_object_reference() {
return this->object;
}
value를 쓰는 기준:
- 객체 복사본 반환 시
Object create_object(const Object& origin) {
return origin // 복사 생성자 호출 되어 origin의 복사본이 반환됨
}
C++ 면접 질문) "빌드 시 컴파일러에서 일어나는 과정에 대해 설명해주세요."