回调函数的简单使用
由于函数内部的一个函数内部需要调用一个函数A,一般的做法是包含A所在的头文件,又时候这样做会导致头文件的相互包含,层次结构不清晰。此时有另一种较好的方法就是将函数A做为参数传递进函数,即采用回调函数。下面是我进行测试的简单例子
简单例子
- callback.h
#ifndef CALLBACK_H
#define CALLBACK_H
namespace cb {
int Add(int i,int j);
int Multi(int i,int j);
int fun(int i,int j,int (*p_func)(int,int));
}
#endif // CALLBACK_H
- callback.cpp
#include "callback.h"
namespace cb {
int Add(int i,int j){
return i+j;
}
int Multi(int i,int j){
return i*j;
}
int fun(int i,int j,int (*p_func)(int,int)){
return (*p_func)(i,j);
}
}
-main.cpp
#include <QCoreApplication>
#include"callback.h"
#include<QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<cb::Add(9,8)<<endl;
qDebug()<<cb::fun(9,8,cb::Add)<<endl;
//两个语句输出结果相同
return a.exec();
}