매개변수로 어떤 때 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++ 면접 질문) "빌드 시 컴파일러에서 일어나는 과정에 대해 설명해주세요."
'C++' 카테고리의 다른 글
C++ 면접 질문) "람다 함수 형식을 설명해주세요." (0) | 2025.01.08 |
---|---|
C++ 면접 질문) "boost asio를 사용하여 어떻게 event-driven architecture를 구현하셨나요?" (0) | 2025.01.08 |
C++ 면접 질문) "언제 Reference를 쓰고 언제 Pointer를 써야 할까요?" (0) | 2025.01.06 |
C++ 면접 질문) "C++에서 Reference 와 Pointer의 차이점은?" (0) | 2025.01.06 |
C++ 면접 질문) delete[] 를 통해 얼마나 해제 할지 알 수 있는 이유는? (0) | 2025.01.06 |