【C++基础】将A类的一个成员函数传给B类作回调函数使用
2023-12-14 15:40:07
要使用回调函数的B类 CallObj
在一个 CallObj 中定义:
定义了一个别名CallbackFunc,该别名表示一个接受一个double参数并返回void的函数指针或函数对象。
using CallbackFunc = std::function<void(double)>;
成员变量
在 CallObj 类中声明了一个成员变量 callbackFunction,它的类型是 CallbackFunc,用于保存回调函数。
CallbackFunc callbackFunction;
函数及实现
提供了一个公共成员函数 setProcessFunc,该函数接受一个 CallbackFunc类型的参数,并将其赋值给 callbackFunction 成员变量。
void setCallbackFunc(CallbackFunc callback);
void CallObj::setCallbackFunc(CallbackFunc callback)
{
callbackFunction = callback;
}
传入回调函数的A类
使用:
定义要传入回调函数类 CallObj 的对象
CallObj* cbObj = new CallObj();
使用std::bind将一个成员函数 processFunc 与当前对象(this)绑定,创建了一个函数对象func。
这里使用了std::placeholders::_1来占位实际的回调函数参数。
返回值类型为:std::function<void(double)>
auto func = std::bind(&CallObj::processFunc, this, std::placeholders::_1);
调用setProcessFunc函数,将绑定后的函数对象 func 作为参数传递给 setProcessFunc,从而将回调函数注册到 CallObj 类的实例中。
cbObj->setCallbackFunc(func);
文章来源:https://blog.csdn.net/yulinxx/article/details/134994548
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!