问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC++ 中为什么回调函数只能用static或者全

发布网友 发布时间:2022-05-23 21:13

我来回答

1个回答

热心网友 时间:2024-03-09 05:11

C语言里没有对象,只有过程,也即只有全局函数,回调函数实际上就是通过函数指针对参数进行回调。

C++里有了对象,除了原来C的全局函数外还有类的静态函数和成员函数,类静态函数跟类对象没有关系,实质跟全局函数一样的。成员函数是跟对象有关,在编译的时候会在成员函数的第一个参数前插入一个参数即对象的指针this,从而编译成全局函数。

显然成员函数单独做回调是不可能的,必须得成员函数和对象一起才行。

所以c++还有成员函数指针,只是很多C++入门书籍都不会讲这个。

比如:

class A
{
    public:
       void fun(){}
}

void myfun(void A::(*pfun)(),A* p)
{
    p->(*pfun)();
}

void main()
{
    A a;
    myfun(&A::fun,&a);
    
}

C++11标准有了std::function范型类后,回调就方便多了。详情可以网上搜一下相关的专题blog,比如:网页链接

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找几本一流的小说。类型' 完结什么的无所谓. 不要幼稚就好 沈阳职高学校排名 沈阳哪个公办职高和中专好 沈阳有哪些职高学校比较好? gpw一代和二代的区别有哪些 罗技gpw一代和二代区别介绍 第一代和第二代的区别 gpw二代和一代有什么区别 二代和一代区别详情分享 设张举措的意思设张举措的解释设张举措接龙 设张的成语设张的成语是什么 人字地砖铺法怎么找平方 VC++ 回调函数 线程 大象有多少颗牙齿 VC++回调函数如何使用!!! vc中回调函数用法 大象有几颗牙齿 郑恺筹备婚礼,郑恺会怎么举办婚礼仪式? 我是个简谱初学者,想知道如何一看到谱就能唱出旋律,我也尝试过,可是那个调总是一样的... 大象究竟有几颗牙齿? 郑恺在生日会透露今年会和苗苗办婚礼,你觉得他的婚礼上能出现哪些明星? 鹿晗邓超在武汉参加婚礼,现场的情况如何? 郑恺结婚邀请的伴郎都会有谁? 我是你的,你是我的吉他谱 酸酸甜甜就是我的歌谱 鹿晗邓超去武汉参加婚礼,两人在现场的表现如何? 黄晓明和angelababy跑男为什么没去婚礼 跑男中黄明昊接新娘时播放的音乐叫什么名字? 郑恺携苗苗录制《跑男》,他们办婚礼了吗? 谁有林俊杰《就是我》的简谱或钢琴谱 炒黄金的方法 炒黄金 用邮政汇款到国外对公账户,用美金,是不是带着人民币过去就可以了?需要注意什么吗?第一次,不懂 大象一生要换几次牙? VC 回调函数的参数是如何处理的 VC调用dll中的回调函数 大象一般几颗牙齿? VC回调函数问题 请问;:VC ++中回调函数有什么作用 摘苹果,大象31个长劲鹿36个,猴子26个,一共摘了多少个? vc中回调函数里的变量值怎么调出来? VC 回调函数访问全局变量 VC编程中,关于多媒体定时器回调函数的问题 VC++ 回调函数中使用 定时器 的问题 Vc++中,如何定义callback函数和它的触发事件? VC中建立窗口的基本步骤?还有,什么是处理消息的回调函数?谢谢! c#怎么调用vc的DLL里的回调函数 VB怎么申明调用vc下.dll下的函数(回调函数) vc++6.0 回调函数错误 请帮忙 南京禄口机场到南京南站地铁要坐多久?南京禄口机场到南京南站怎 南京190路早上多长时间一班?6:00-6:20内具体几时过光华门站?190路起 ... 南京火车站到秦淮区外贸口岸大楼座多少路公交车? 南京南到南京站怎么去