gpt4 book ai didi

c++ - 函数指针类型定义错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:53 24 4
gpt4 key购买 nike

我用类似 typedef 定义了我的函数指针

typedef void (*ThreadFunc)( void *);

我的类成员方法如下:

 void start( ThreadFunc f, vector<void *> &jobs)

在我的主程序中我写了一个函数:

 ThreadFunc runner( void *job )
{
printf("->> %p\n", job);
};

并且想要运行成员函数所以我尝试了:

r.start( runner, jobs);

编译器说:

main.cc:27: Fehler: ungültige Umwandlung von »void (* (*)(void*))(void*)« in »void (*)(void*)«
main.cc:27: Fehler: Argument 1 von »void Thread::start(void (*)(void*), std::vector<void*, std::allocator<void*> >&)« wird initialisiert

希望有人能帮我做个简短的 :) greetz

最佳答案

runner 需要声明为返回 void,而不是返回 ThreadFunc 以匹配 start 的签名。

关于c++ - 函数指针类型定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967377/

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