一直以来对C++成员函数指针没有太注意, 以为跟普通函数指针差不多, 使用起来才发现错误多多, 将成员函数指定当普通函数指针来使用了, 因此, 特意写了个小例子来帮助理解, 具体代码如下:
从代码可以看出成员函数指针使用需注意以下几个方面:
1. 不管是在类中或外部定义, 必须为 (class::*fun)(param...) 格式, 否则为一般的函数指针
2. 函数指针的取地址符&可有可无
3. 静态成员函数相当于普通函数, 可用于普通函数指针, 而普通成员函数则不能
4. 成员函数指针的调用一定需要借用类实例来完成
5. 类实例不能直接调用自己内部定义的成员函数指针, 调用方式: (instanse->*(instanse->m_fun))()