gpt4 book ai didi

c++ - 来自非静态成员函数的 pthread_create

转载 作者:行者123 更新时间:2023-11-28 08:30:14 25 4
gpt4 key购买 nike

这有点类似于:pthread function from a class

但是最后被调用的函数引用了 this 指针,所以它不能成为静态的。

void * Server::processRequest()
{
std::string tmp_request, outRequest;
tmp_request = this->readData();
outRequest = this->parse(tmp_request);
this->writeReply(outRequest);
}

void * LaunchMemberFunction(void * obj)
{
return ((Server *)obj)->processRequest();
}

然后是 pthread_create

Server SServer(soc);

pthread_create(&handler[tcount], &attr, (void*)LaunchMemberFunction,(void*)&SServer);

错误:

SS_Twitter.cpp:819: 错误:从 void* 到 void* 的无效转换 ()(void)SS_Twitter.cpp:819: 错误:初始化参数 3 的 int pthread_create(pthread_t*, const pthread_attr_t*, void* ()(void), void*)

最佳答案

您正在将第三个参数转换为 void* ((void*),然后出现错误,因为 void* 无法转换为函数指针。

我相信如果您只使用 &LaunchMemberFunction 应该可以编译。

关于c++ - 来自非静态成员函数的 pthread_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com