使用std::function
进行函数定义并绑定到变量中。
例如:
头文件:#include <functional>
定义格式: std::function<函数类型>
typedef std::function<void(int,int)> comfun;
或者
using comfun= std::function<void(int,int)>;
提供设置具体函数地址的接口
void SetFunction(comfun _fun) { m_Comfun = _fun; }
comfun m_Comfun ;
使用std::bind
将具体的函数与std::function
函数绑定的变量绑定到一起
comfun fun = bind(&AClass::RealizationFunction, this,placeholders::_1,placeholders::_2);
BClass->SetFunction(fun);
总结,在非继承关系中的两个类间中,避免相互引用。
std::function方法使用详情,可查看std::function的用法
std::bind方法使用详情,可查看std::bind的用法