一直以來對C++成員函數指針沒有太注意, 以爲跟普通函數指針差不多, 使用起來才發現錯誤多多, 將成員函數指定當普通函數指針來使用了, 因此, 特意寫了個小例子來幫助理解, 具體代碼如下:
從代碼可以看出成員函數指針使用需注意以下幾個方面:
1. 不管是在類中或外部定義, 必須爲 (class::*fun)(param...) 格式, 否則爲一般的函數指針
2. 函數指針的取地址符&可有可無
3. 靜態成員函數相當於普通函數, 可用於普通函數指針, 而普通成員函數則不能
4. 成員函數指針的調用一定需要借用類實例來完成
5. 類實例不能直接調用自己內部定義的成員函數指針, 調用方式: (instanse->*(instanse->m_fun))()