Const 멤버 함수란?
C++에서 const 멤버 함수는 프로그램 내에서 const 키워드로 선언된 멤버 함수를 의미합니다. 이러한 함수가 호출하는 객체는 함수 내부에서 수정될 수 없습니다. 따라서 실수로 인해 객체가 변경되는 것을 방지하기 위해 const 키워드를 사용하는 것이 권장됩니다.
const 멤버 함수는 어떤 타입의 객체로든 호출할 수 있다는 장점이 있습니다. 반면, 일반(non-const) 멤버 함수는 non-const 객체로만 호출할 수 있습니다.
Const 멤버 함수의 문법
C++에서 const 멤버 함수를 선언하는 기본 문법은 다음과 같습니다.
datatype function_name() const;
예제 코드
다음은 C++에서 const 멤버 함수를 사용하는 대표적인 예제입니다.
#include<iostream>
using namespace std;
class Demo {
int val;
public:
Demo(int x = 0) {
val = x;
}
int getValue() const {
return val;
}
};
int main() {
const Demo d(28);
Demo d1(8);
cout << "The value using object d : " << d.getValue();
cout << "\nThe value using object d1 : " << d1.getValue();
return 0;
}실행 결과
The value using object d : 28 The value using object d1 : 8
코드 설명
위 예제에서 getValue() 함수는 const로 선언되었습니다. main 함수에서 const 객체 d와 일반 객체 d1 모두 getValue()를 성공적으로 호출하는 것을 확인할 수 있습니다.
만약 getValue()가 const로 선언되지 않았다면, const 객체 d로는 해당 함수를 호출할 수 없어 컴파일 오류가 발생합니다. 이처럼 const 멤버 함수는 객체의 데이터를 읽기 전용으로만 접근하도록 보장하여 코드의 안정성과 신뢰성을 크게 높여줍니다.