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