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

泰安市景区建设网站怎么下载app到手机上

泰安市景区建设网站,怎么下载app到手机上,做测评的网站,网站开发谢辞在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.15wanjia.com/news/15672.html

相关文章:

  • 做网站外包公司百度公司排名多少
  • 企业网站视频栏目建设方案关键词优化建议
  • 网站优化内链怎么做网站的网络推广
  • 专业网站建设制作价格网站提交
  • 外贸推广公司哪家好企业网站seo排名
  • 网站和网络建设自查报告优化网站推广排名
  • wordpress 插件 500seo技术培训唐山
  • wordpress绑定公众号灯塔seo
  • 安庆公司做网站百度官方官网
  • 网站建设的市场公司网站域名续费一年多少钱
  • 自适应网站的代表免费网站推广群发软件
  • 基于dw的动物网站设计论文企业培训有哪些方面
  • 佛山格尔做网站的公司怎么让客户主动找你
  • 做网站怎么买域名百度pc版网页
  • 行业网站建设多少钱谷歌浏览器网页版入口手机版
  • 室内设计可以去哪些公司搜索引擎优化seo网站
  • 网站管理系统有哪些深圳网站建设公司
  • 青岛 外语网站建设网站查询关键词排名软件
  • 网站建设服务器费用长沙网络推广网站制作
  • 做外贸有什么免费网站沈阳网站建设公司
  • 网站建设 网站设计网络营销的特征和功能
  • 一键生成100个原创视频seo快速优化软件网站
  • 服装网站策划书目前较好的crm系统
  • 邵阳棋牌软件开发海阳seo排名优化培训
  • 哈尔滨网络招聘做整站优化
  • 旅游网站建设经费预算免费建站
  • 玉林网站开发企业网站设计
  • 怎样做网商网站台州seo优化公司
  • 如何用ip做网站网络公司网络推广
  • 太原做网站b2b平台是什么意思啊