[c++] 구조체와 클래스의 멤버 함수의 참조와 const
멤버 함수의 참조
멤버 함수를 참조하는 방법은 함수 포인터를 사용하는 것과 유사합니다. 예를 들어, 다음과 같이 구조체나 클래스의 멤버 함수를 참조할 수 있습니다.
구조체의 멤버 함수 참조
struct MyStruct {
void func() {
// 구조체 멤버 함수의 내용
}
};
void (MyStruct::*funcPtr)() = &MyStruct::func;
클래스의 멤버 함수 참조
class MyClass {
public:
void func() {
// 클래스 멤버 함수의 내용
}
};
void (MyClass::*funcPtr)() = &MyClass::func;
멤버 함수가 참조되었으므로 해당 포인터를 통해 함수를 호출할 수 있습니다.
const 멤버 함수
const 멤버 함수는 해당 함수가 객체의 멤버를 수정하지 않음을 나타냅니다. const 멤버 함수를 정의할 때는 함수 뒤에 const 키워드를 붙입니다.
struct MyStruct {
void func() {
// 일반 멤버 함수
}
void constFunc() const {
// const 멤버 함수
}
};
const 멤버 함수의 경우, 해당 함수에서 멤버 변수를 수정하려고 하면 컴파일 오류가 발생합니다. 이를 통해 객체가 상태를 변경하지 않고 읽기 전용으로 사용될 수 있도록 보장할 수 있습니다.
멤버 함수의 참조와 const 멤버 함수를 통해 C++에서 구조체와 클래스를 보다 유연하게 다룰 수 있습니다.