线程函数中访问类的数据成员,该如何处理
线程函数中访问类的数据成员
在一个类函数中创建一个线程,并将该线程函数作为该类的成员函数(该成员函数已声明为static)。怎样在线程函数中访问该类的数据成员m_HungryIndex?
为什么出下面的错?
error C2597: illegal reference to data member 'CPerson::m_HungryIndex ' in a static member function
应该怎样访问?
------解决方案--------------------
创建线程时,将类的this指针作为参数传入,线程中利用该指针访问类变量
------解决方案--------------------
//该线程函数已定义为CPerson类的静态成员函数
DWORD WINAPI CPerson::EatProc(LPVOID lpParameter)
{
//这里我已经通过this指针传递来一个CPerson类的对象p
//请问这里如何调用p的成员函数Eat()????
CPerson *pPerson = (CPerson *)lpParameter;
pPerson-> Eat();
return 0;
}
在一个类函数中创建一个线程,并将该线程函数作为该类的成员函数(该成员函数已声明为static)。怎样在线程函数中访问该类的数据成员m_HungryIndex?
为什么出下面的错?
error C2597: illegal reference to data member 'CPerson::m_HungryIndex ' in a static member function
应该怎样访问?
------解决方案--------------------
创建线程时,将类的this指针作为参数传入,线程中利用该指针访问类变量
------解决方案--------------------
//该线程函数已定义为CPerson类的静态成员函数
DWORD WINAPI CPerson::EatProc(LPVOID lpParameter)
{
//这里我已经通过this指针传递来一个CPerson类的对象p
//请问这里如何调用p的成员函数Eat()????
CPerson *pPerson = (CPerson *)lpParameter;
pPerson-> Eat();
return 0;
}