先看两个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