C++类中封装指针函数

 

 

class MyClass {
public:
    void func1() {
        // 实现
    }
    
    void func2() {
        // 实现
    }
    
    // 成员函数指针类型
    typedef void (MyClass::*MemberFuncPtr)();
    
    // 一个成员函数指针成员变量
    MemberFuncPtr ptrFunc;
    
    // 设置成员函数指针
    void setFunctionPointer(MemberFuncPtr func) {
        ptrFunc = func;
    }
    
    // 调用通过成员函数指针指定的函数
    void callFunctionPointer() {
        (this->*ptrFunc)(); // 使用成员指针调用成员函数
    }
};

int main() {
    MyClass obj;
    obj.setFunctionPointer(&MyClass::func1);
    obj.callFunctionPointer(); // 调用func1
    
    obj.setFunctionPointer(&MyClass::func2);
    obj.callFunctionPointer(); // 调用func2
    
    return 0;
}

 

 

 

###########################

posted @ 2024-05-22 23:06  西北逍遥  阅读(11)  评论(0编辑  收藏  举报