在C++的类中使用类成员函数作为回调函数
由于类有隐式的this指针,所以不能直接把类成员函数作为回调函数使用。现用一例子来展示如何在类中使用类成员函数作为回调函数。
此例子仅用于展示如何在类中使用类成员函数作为回调函数
代码如下:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <process.h>
class MyTest
{
public:
MyTest() {};
~MyTest() {};
void ThreadFunc();
static unsigned int __stdcall Threadcallback(PVOID Pm);
void printf();
private:
static MyTest* p;//用于在回调函数中调用类成员函数
};
void MyTest::ThreadFunc()
{
//第四个参数自定义,多个参数可通过结构体传递
_beginthreadex(NULL, 0, Threadcallback, NULL, 0, NULL);
}
MyTest* MyTest::p = NULL;
unsigned int __stdcall MyTest::Threadcallback(PVOID Pm)
{
std::cout << "回调函数" << std::endl;
//调用了非静态成员函数,在这个函数里面实现自己的功能
p->printf();
return 0;
}
void MyTest::printf()
{
std::cout << "测试函数" << std::endl;
}
int main()
{
MyTest mytest = MyTest();
for(int i = 0; i < 5; i++)
mytest.ThreadFunc();
system("pause");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!