理解C++成員函數指針

        一直以來對C++成員函數指針沒有太注意, 以爲跟普通函數指針差不多,  使用起來才發現錯誤多多,  將成員函數指定當普通函數指針來使用了,  因此, 特意寫了個小例子來幫助理解, 具體代碼如下:

 

從代碼可以看出成員函數指針使用需注意以下幾個方面:

1. 不管是在類中或外部定義, 必須爲 (class::*fun)(param...) 格式, 否則爲一般的函數指針

2. 函數指針的取地址符&可有可無

3. 靜態成員函數相當於普通函數, 可用於普通函數指針, 而普通成員函數則不能

4. 成員函數指針的調用一定需要借用類實例來完成

5. 類實例不能直接調用自己內部定義的成員函數指針, 調用方式: (instanse->*(instanse->m_fun))()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章