[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++에서 구조체와 클래스를 보다 유연하게 다룰 수 있습니다.

참고 자료