先看兩個demo:
一.在類test1中調用函數print() ,把print()的函數指標傳遞給test1的函數指標參數
test1.h:
#include <stdio.h>#include <iostream>using namespace std;typedef void (*FUNP)();class test1{public:void fun1(FUNP p){(*p)();}};
main.cpp
#include <stdio.h>#include "test1.h"void print();int main(){test1 tet1;tet1.fun1(print);getchar();return 0;}// void (*p)()void print(){printf("hello world\n");}// 列印 “hello world”
二.類Test1 中調用Test2的方法函數。 在類test2中包含test1對象,將test2中的函數指標傳給test1
test2.h:
#include "test1.h"
#include <iostream>using namespace std;class Test2{public:Test2(){tet1.fun1(fun2);}static void fun2(){cout<<"Test2"<<endl;}public:test1 tet1;};test1.h:
#include <stdio.h>#include <iostream>using namespace std;typedef void (*FUNP)();class test1{public:void fun1(FUNP p){(*p)();}};main:
#include <stdio.h>#include "test2.h"int main(){Test2 tet2; getchar();return 0;}
// 結果:列印“Test2”
附上兩個deome,搞清楚的話 回呼函數基本可以套著用了
http://download.csdn.net/my