当前位置: 首页 > news >正文

站长统计app进入网址新版宝安做棋牌网站建设哪家好

站长统计app进入网址新版,宝安做棋牌网站建设哪家好,如何做网页游戏,手机电脑同步编辑wordpress在C语言中,传递函数指针是非常常见的操作。 在C语言中,使用C语言一致的方法传递全局函数指针,或者传递静态函数指针也很常见。 不过如果遇到想传递非静态成员函数时,可以参考以下示例代码。 #ifndef _WORKER_HPP_ #define _WOR…

在C语言中,传递函数指针是非常常见的操作。

在C++语言中,使用C语言一致的方法传递全局函数指针,或者传递静态函数指针也很常见。

不过如果遇到想传递非静态成员函数时,可以参考以下示例代码。

#ifndef _WORKER_HPP_
#define _WORKER_HPP_#include <iostream>
#include <unistd.h>
#include <functional>
#include <chrono>
#include <iomanip>
#include <sstream>class Worker {
public:// 设置回调函数void registerCallback(std::function<void(int, std::string, long)> cb) {this->mCallback = cb;}void startWork() {using namespace std::literals;const std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();const std::time_t t_c = std::chrono::system_clock::to_time_t(now);int i = 1008;std::stringstream ss;ss << std::put_time(std::localtime(&t_c), "%F %T");std::string s = ss.str();long l = __cplusplus;mCallback(i, s, l);}private:std::function<void(int, std::string, long)> mCallback;};#endif

参考Manager内的work函数,列出了几种写法。

#ifndef _MANAGER_HPP_
#define _MANAGER_HPP_#include <functional>
#include <string>
#include <iostream>#include "worker.hpp"class Manager {
public:Manager(): mI(-1), mS("coco"), mL(-1L) {}virtual ~Manager() = default;public:void work() {using namespace std::placeholders;// 设置回调函数, 使用lambdaworker.registerCallback([this](int&& i, std::string&& s, long&& l) -> void {this->onMsgCallback(i, s, l);});// 设置回调函数,使用bind,搭配mem_fnauto ptr = std::mem_fn(&Manager::onMsgCallback);worker.registerCallback(std::bind(ptr, this, _1, _2, _3));// 不搭配mem_fnworker.registerCallback(std::bind(&Manager::onMsgCallback, this, _1, _2, _3));worker.startWork();}void print() {std::cout << __FUNCTION__ << " mI is " << mI << ", mS is " << mS << ", mL is " << mL << std::endl;}private:void onMsgCallback(int i, std::string s, long l) {std::cout << __FUNCTION__ << " i is " << i << ", s is " << s << ", l is " << l << std::endl;this->mI = i;this->mS = s;this->mL = l;}private:int mI;std::string mS;long mL;Worker worker;
};#endif

main示例:

int main()
{// 演示将非静态成员函数设置为回调函数{Manager manager;manager.print();manager.work();manager.print();}return 0;
}

 输出参考:

print mI is -1, mS is coco, mL is -1
onMsgCallback i is 1009, s is 2023-11-18 20:22:34, l is 201402
print mI is 1009, mS is 2023-11-18 20:22:34, mL is 201402

http://www.yayakq.cn/news/662996/

相关文章:

  • 网站后台排版布局百度在线入口
  • php网站建设案例教程视频教程青州网页定制
  • 网站建设工程师的职位要求物流公司在哪里找
  • 福州思企互联网站建设公司怎么样计算机多媒体辅助教学网站开发
  • 怎么用php源代码做网站制作app的网站哪个好
  • 网站的建设时间表wordpress全站音乐
  • 中国建设协会官网站网站做的和别人一样违法
  • 做羞羞的专门网站设计网站建设图片
  • 贵阳网站建设设计网站备案 异地
  • 高端品牌型 营销型网站建设商城网站开发用什么框架
  • 单页面网站建设网站备案咨询
  • php网站开发实例教程案例数据库网站制作
  • 做推送的网站除了秀米还有图片在线编辑网站
  • jquery网站底部导航效果wordpress 4.8.2 主题
  • 工程网站建设方案社交博客网站开发
  • 福田附近网站开发公司免费科技软件
  • php怎么做全网小视频网站创建个人网站制作流程步骤
  • 网站维护 北京公司做网站好吗
  • 网站建设进什么分录广州哪家公司做网站
  • 建设网站 关于竣工结算的期限seo职位信息
  • 可以建设彩票网站吗哪个app可以找培训班
  • 洛阳做网站公司电话做个英文网站多少钱
  • 世界局势最新消息军事十堰seo排名公司
  • 浙江华企网站做的咋样那些网站可以做0首付分期手机号
  • 银川做网站0基础做网站多久
  • 各大网站的404怎样做农村电商网站
  • 电子商务网站建设教学大纲做网店好还是网站好
  • 网站广告费怎么做分录wordpress 关注
  • 网站优化网站优化烟台网站建设 58
  • 青海省建设厅官方网站百度联盟