解决方案:将线程函数作为静态函数,因为在C++中静态函数没有this指针,可以编译通过。
但是随即又带来了新的问题,该线程函数无法访问到类的私有变量
解决方案: 函数间接调用,线程函数(如runthread函数)里不直接实现我们想要实现的内容,调用一个真正实现功能的成员变量(run)函数,将this指针作为参数传递给静态函数(runthread),这样可以通过该this指针到所有的变量和函数,可以讲这些变量传给run函数,当然,已经不用传参,run函数本身已经访问所有的私有变量了。
解决pthread线程编译错误
本文探讨了在使用pthread时遇到的编译错误:线程处理函数作为类成员时,因this指针导致的问题及解决方案。介绍了如何通过静态成员函数和间接调用的方式解决线程函数与this指针不匹配的问题。
解决方案: 函数间接调用,线程函数(如runthread函数)里不直接实现我们想要实现的内容,调用一个真正实现功能的成员变量(run)函数,将this指针作为参数传递给静态函数(runthread),这样可以通过该this指针到所有的变量和函数,可以讲这些变量传给run函数,当然,已经不用传参,run函数本身已经访问所有的私有变量了。
6001

被折叠的 条评论
为什么被折叠?