oc 协议 回调 静态成员_每日一问:c++类的成员函数,能作为线程的参数吗?

问:类的成员函数可以传入线程参数吗?

回答:

如果c语言的全局函数,可以。

如果是类的静态成员函数,可以

如果是类的普通成员函数,不可以

为什么?

《深入探索C++对象模型》中提到成员函数时,当成员函数不是静态的,虚函数,那么我们有以下结论:  (1) &类名::函数名 获取的是成员函数的实际地址; (2) 对于函数x来讲obj.x()编译器转化后表现为x(&obj),&obj作为this指针传入;  (3) 无法通过强制类型转换在类成员函数指针与其外形几乎一样的普通函数指针之间进行有效的转换。所以,要在回调函数中传入一个类的普通成员函数时,this指针无处安放使得回调函数比较复杂。

怎么解决?

对成员函数进行强制转换,当作回调函数

class MyClass  {      pthread_t TID;      void func()  {          //子线程执行代码      }  public:      bool startThread()  {//启动子线程          typedef void* (*FUNC)(void*);//定义FUNC类型是一个指向函数的指针,该函数参数为void*,返回值为void*          FUNC callback = (FUNC)&MyClass::func;//强制转换func()的类型          int ret = pthread_create( &TID , NULL , callback , this );          if( ret != 0 )              return false;          else              return true;      }  };    int main()  {      MyClass a;      a.startThread();  }

回调函数为普通函数,但在函数体内执行成员函数

0762ece29bf4d09fc3d47749884f08d8.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...

简介: 友信金服公司推行全域的数据体系战略,通过打通和整合集团各个业务线数据,利用大数据、人工智能等技术构建统一的数据资产,如 ID-Mapping、用户标签等。友信金服用户画像项目正是以此为背景成立,旨在实现“数据驱…

apache pulsar_Apache Pulsar:分布式Pub-Sub消息系统

apache pulsarApache Pulsar是一个开源的分布式pub-sub消息传递系统,最初是由Yahoo创建的,并且是Apache Software Foundation的一部分 。 Pulsar是用于服务器到服务器消息传递的多租户高性能解决方案。 脉冲星的主要功能包括[4]: 对Pulsar…

python deque索引超出范围_Python基础语法

学习Python的四个要素有数据,函数,条件循环和模块一、数据数据是Python编程过程中的原材料,通过导入数据,对数据进行操作,实现预先设想的功能。数据共有5种类型,分别是字符串、数字、容器、布尔值和空值。字…

Path环境变量的理解以及设置MinGW环境变量

配置path环境变量 在使用MinGW的时候,不小心把path变量的东西全部删掉了,结果只能自己重新设置path变量,首先要知道如何设置path变量。 Path路径:用来指定可执行文件的搜索路径,也就是后缀名为.exe文件,方…

python爬取网站的图片

python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库。 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图片的地址&#x…

用户登陆_华为路由器AAA用户密码登陆你了解吗?

AAA Authentication(认证)、Authorization(授权)、Accounting()它提供了认证、授权、计费三种安全功能,可以验证用户帐户是否合法,授权用户可以访问的服务,并记录用户使用网络资源的…

word域变成正常文本_【Word小技巧】不学会后悔哦~

工作中使用Word早已成了习惯,因此,今天小编将为大家分享几个实用的的Word小技巧。重叠字快速录入文字录入是word最基本操作,过程中我们难免要输入重叠字,例如:热热闹闹,卿卿我我等……你知道如何快速录入吗…

sql server 2008 年累计数_Windows Server 2008 和 SQL Server 2008将终止支持 迁移至Azure 微软提供3年免费技术支持...

点击上方蓝色字关注我们~迁移至 Azure 并利用免费扩展安全更新。了解有关支持终止建议的更多信息,请使用浏览器访问:https://www.microsoft.com/zh-cn/sql-server/sql-server-2008.对您意味着什么1 2017年基于风险的安全报告; 思科 2017 年度网络安全报告…

旧版Requests库

requests库基本使用Requests解析库方法response对象response对象的属性**r.encoding**属性与**r.apparent_encoding**属性的区别requests库的异常举例Requests解析库 方法 最常用的两个方法: request.get() request.post() 作用:都是从服务器获取网页信息 区别&…

夸克浏览器怎么安装脚本_iOS 第一浏览器发布安卓版,除了真香我还能说什么...

如果不算 Safari 的话,iOS 平台公认最好的浏览器是 Alook。无推送无新闻无广告、日常售价 12 元、工具类排行第三、7.8 万个评分足以证明其优秀。以至于很多双持或对 Alook 有所了解的用户都希望 Alook 能推出安卓端。现在安卓端真的来了。(安卓端免费)假如这个时候…

Windows 10 笔记本如何使用外接显示器

文章目录如何连接外接显示屏如何设置显示模式如何设置不同显示屏各自的分辨率如何设置主显示器通过显卡来设置显示器如何连接外接显示屏 VGA 线或者 HDMI 线连接好电脑和显示器,以 HDMI 线为例简单讲下吧。 显示器可能会有多个 HDMI 接口,假设你插入 H…

蓝牙信号强度检测app_基于蓝牙技术的智能插座方案

有这样一句话“科技时代,生活轻快”。随着社会现代化程度越来越高,科技的应用为人们的生活带来便捷,大大提高了工作效率。纵观市场上“智能家居”产品很多,功能各异,各有千秋,但是针对家电控制的智能插座还…

图片清晰度,分辨率,像素总结

像素 像素是一个个小方块,是构成位图的基本单位。将图片放大即可看出来,如图: 分辨率 显示分辨率是指像素的总数量,如上图的22001400,也就是宽有2200个像素,高有1400个像素。 图像分辨率是指每英寸所包含…

apache isis_使用Apache Isis快速进行SEMAT应用程序开发

apache isisTL; DR这是关于一个帖子会谈SEMAT宠物项目我创建使用Apache伊希斯和部署到OpenShift在线这里http://semat.ofbizian.com Apache Isis 作为主要在后端系统上工作的Java开发人员,我讨厌创建用户界面和处理Java脚本。 幸运的是,有一些Java项目&…

MacBook外接显示器及相关设置详解(分屏/多屏)

文章目录一、连接显示器和电脑二、打开显示器设置界面三、调整显示器图标位置四、设置主显示器五、移动 Dock六、镜像模式七、合盖模式八、扩展模式九、设置外接显示器竖屏显示十、外接显示器后,如何调出更多分辨率十一、关于程序坞显示的问题一、连接显示器和电脑 …

ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9

ibm liberty几周前,我写了一篇文章,题目是哪个IDE和服务器支持Java EE 8和Java9 ,着眼于Java 9和Java EE 8之间的当前状态。您可以期望事情发展很快,现在我们有了一些alpha和支持Java 9和Java EE 8的开发版本。这些是– Payara 5…

关键词分词工具_快图制作工具 | 如何制作词云图?

点击蓝字关注我们如何制作词云图?首先,我们需要对“词云”有个简单的概念。“词云”这个概念最先由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)提出。“词云”(别名:文字云,外文名:wordle)即由词汇…

openhub_OpenHub框架–下一个有趣的功能

openhub这是有关OpenHub框架系列的第三篇文章-第一篇介绍OpenHub框架 ,第二篇介绍异步消息传递模型 。 该系列的最后一篇文章将更详细地介绍其他一些有趣的功能,并说明为什么OpenHub可以成为您的集成项目的理想选择的原因。 节流 节流是一种功能&#…

售票系统的组件图和部署图_识读配电箱系统图

配电箱确实有很多字母,要熟悉这些字母的基本含义,才能更准确地知道配电箱系统图的意思。网上查了一些资料,发现配电箱中的字母实在是太多了,先简单说几个需要基本认识的字母:GCK、GCS、MNS是低压抽出式开关柜&#xff…

packt_Packt和Java Code Geeks提供的$ 5 Java编程书籍!

packt你好,极客! 今天,我们为您带来一些激动人心的消息! Java Code Geeks和Packt联手为您提供广泛的书籍库每周折扣。 对于开发人员来说,Java仍然是最强大的选择之一,它是定义企业和移动设备的语言。 本…