C++ const 멤버 함수
1. 개요
1.1 문서 개요
이 문서는 C++에서 const
멤버 함수의 개념과 특징에 대해 설명합니다. const
멤버 함수는 객체 상태를 변경하지 않는 함수로, 클래스 설계의 안정성과 일관성을 보장합니다.
2. 내용
2.1 const 멤버 함수의 정의와 문법
2.1.1 문법 구조
class Example {
public:
int getValue() const;
};
- 함수 선언 뒤에
const
키워드를 붙이면 해당 함수는 멤버 변수를 수정할 수 없습니다.
2.1.2 적용 대상
const
멤버 함수는const
객체에서도 호출 가능합니다.this
포인터의 타입은const ClassName* const
로 간주됩니다.
2.2 const 함수에서의 제한
2.2.1 변경 불가한 요소
const
멤버 함수 내에서는 비정적 멤버 변수의 값을 수정할 수 없습니다.- 비-const 멤버 함수는 호출할 수 없습니다.
2.2.2 mutable 예외
class Sample {
private:
mutable int counter;
public:
void increment() const {
counter++; // mutable은 const 함수 내에서도 변경 가능
}
};
2.3 const 멤버 함수의 필요성과 이점
- 객체의 상태를 보호하고 함수의 부작용을 줄이는 데 유리합니다.
const
객체나 참조를 사용할 때 유연성을 제공합니다.- 인터페이스 명확성과 코드 문서화에 도움이 됩니다.
3. 마무리
const
멤버 함수는 클래스의 불변성을 유지하기 위한 수단으로, 주로 읽기 전용 접근자에 사용됩니다. mutable
을 활용하면 제한된 수정이 가능하며, 객체의 상태를 명확히 구분하는 데 유용합니다.