티스토리 뷰
C++에서 클래스 멤버 함수의 `const` 버전을 추가하는 경우는 주로 해당 함수가 객체의 상태를 변경하지 않음을 명시하고 싶을 때입니다.
이는 객체의 멤버 변수를 수정하지 않는 "읽기 전용" 함수를 나타내며, 이를 통해 코드의 의도를 더 명확하게 하고, 잠재적 오류를 줄일 수 있습니다.
`const` 멤버 함수는 다음과 같은 상황에서 유용합니다:
1. 읽기 전용 접근 보장: `const` 함수는 객체의 멤버 변수를 변경할 수 없습니다. 이로 인해 객체의 상태를 변경하지 않고 정보를 읽거나 계산만 수행하는 함수를 명확하게 표현할 수 있습니다.
2. `const` 객체 사용: `const`로 선언된 객체는 오직 `const` 멤버 함수만 호출할 수 있습니다. 따라서, 객체가 변경되지 않아야 하는 상황에서 `const` 멤버 함수를 제공하면, 이 객체를 안전하게 사용할 수 있습니다.
3. 함수 오버로딩: 같은 이름의 함수를 `const`와 비-`const` 버전으로 오버로딩할 수 있습니다. 이를 통해 `const` 객체와 비-`const` 객체 모두에서 해당 함수를 사용할 수 있으며, 객체의 `const` 여부에 따라 적절한 함수가 호출됩니다.
4. 인터페이스 안정성: `const` 멤버 함수를 사용하면 클래스의 인터페이스가 안정적으로 유지됩니다. 사용자는 객체의 상태가 변경되지 않을 것이라고 기대할 수 있으며, 이는 코드의 가독성과 유지보수성을 향상시킵니다.
예시 코드:
T& operator[](int n) {
return data[n];
}
const T& operator[](int n) const {
return data[n];
}
반응형
'C++ > 참고' 카테고리의 다른 글
[C++] 문법: 범용 참조 (Args&&... args) (0) | 2023.12.17 |
---|---|
[C++] 문법: 가변 템플릿 인자 (...args) (0) | 2023.12.17 |
[C++] 문법: 참조 변수와 포인터 변수의 사용 목적 차이 (0) | 2023.12.16 |
[C++] 문법: 포인터 변수와 참조 (0) | 2023.12.16 |
[C++] 문법: 참조와 역참조 (0) | 2023.12.16 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- react-native
- AsyncStorage
- Promise
- Async
- 인천 구월동 이탈리안 맛집
- await
- 정보보안기사 #실기 #정리
- 맛집
- 인천 구월동 맛집
- redux-thunk
- 이탈리안 레스토랑
- 파니노구스토
- react
- redux
- javascript
- Total
- Today
- Yesterday