创建一个自由函数,该函数应该接受与回调成员函数相同的参数列表。
将新创建的自由函数传递给API中的回调成员函数。
下面是一个简单的示例,其中类MyClass有一个回调成员函数callbackFunc(),其中接受一个没有参数的自由函数作为参数:
#include
// 被回调的自由函数
void myFunc()
{
std::cout << "This is my function." << std::endl;
}
class MyClass
{
public:
void callbackFunc(void (*func)())
{
std::cout << "Calling my callback function." << std::endl;
// 调用传递进来的函数
func();
std::cout << "Finished calling my callback function." << std::endl;
}
};
int main()
{
MyClass myObject;
// 传递自由函数到回调成员函数中
myObject.callbackFunc(myFunc);
return 0;
}
输出:
Calling my callback function.
This is my function.
Finished calling my callback function.
在此示例中,myFunc()是一个没有参数的自由函数。我们将它传递给MyClass::callbackFunc()。在callbackFunc()中,我们调用传递进来的函数,并在开始和结束调用的时候输出一些文本。