文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、代码
- 二、测试
- 1.封装回调函数
- 2.回调函数使用
- 3.main函数
- 总结
前言
习惯了C++的面向对象,但是写代码中经常用到回调函数的地方,回调函数在面向对象代码结构中实在很扎眼,破坏封装,所以想了个办法来兼容回调。
一、代码template二、测试 1.封装回调函数class CStylePtr { public: static R CallBack(Args... args) { call t; return t(std::forward (args)...); } using FunctionPointer = R(*)(Args ... args); operator FunctionPointer() { return CallBack; } };
代码如下(示例):
`class CTest
{
public:
int operator()(int a) //回调函数执行内容
{
printf("%d====n",a);
return a;
}
};
2.回调函数使用
void test3(int(*p)(int))
{
p(3);
}
3.main函数
test3(CStylePtr总结());
operator()函数签名与要使用的回调函数保持一致。



