函數指針經常使用的有三類ios
一、指向普通函數的函數指針函數
二、指向類中靜態成員函數的函數指針spa
三、指向類的成員函數的函數指針指針
1、指向普通函數的函數指針code
#include <iostream> using namespace std; void Show() { cout<<"Show()"<<endl; } typedef void(*pFun)(); //定義函數指針類型 int main() { pFun p = &Show; (*p)(); return 0; }
2、指向類中靜態成員函數的函數指針
指向類中靜態成員函數的函數指針的聲明形式:blog
#include <iostream> using namespace std; class CPeople { public: int num; public: CPeople() { num = 100; } static void Show() { cout<<"static void Show()"<<endl; } void ShowShow() { cout << "ShowShow()" << num << endl; } }; typedef void (*PFUN)(); // 普通的函數指針 typedef void (CPeople::*PFUN_A)(); // 成員函數指針 // ::* .* ->* 都是編譯器提供的新的操做符 支持成員函數指針的操做 int main() { //PFUN fun = &CPeople::Show; // 普通的函數指針 要指向類的函數 那麼這個函數必定要static PFUN_A fun_a; // 成員函數指針的賦值 fun_a = &CPeople::ShowShow; CPeople pep; (pep.*fun_a)(); // 成員函數指針的調用 CPeople* p = new CPeople; (p->*fun_a)(); system("pause"); return 0; }