请问在类的线程函数中怎么访问类的类成员变量?

rabbit729 2007-08-23 10:25:29
代码如下:
class Test
{
private:
CTest1 m_test1; // CTest1是一个类
CTest2 m_test2; // CTest2是一个类

public:
static DWORD WINAPI ThreadFunc (LPVOID pParam); // 此函数是一线程函数
void Init();
};

请问上面的线程函数ThreadFunc中如何访问类对象m_test1和m_test2,我想的是把这两个对象声明为静态的然后在线程函数中直接用,请问这样可以么?如果不可以该如何实现?还有就是如果声明为静态的话,如何在类的其它成员函数中,例如上面的Init()函数中调用m_test1和m_test2的方法?还有一个问题就是静态成员函数只能访问静态成员变量,那么反过来说“只有静态成员函数才能访问静态成员变量”这句话对么?谢谢大家!!!!
...全文
455 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tnfyj 2008-05-05
  • 打赏
  • 举报
回复
阿。。。都说完了。。。 留印
linlan999 2008-05-04
  • 打赏
  • 举报
回复
mark
vcmfcangel 2008-03-27
  • 打赏
  • 举报
回复
“只有静态成员函数才能访问静态成员变量”
错的
别的也可以访问。
vcmfcangel 2008-03-27
  • 打赏
  • 举报
回复
me too
支持用指针!
zcp126 2007-09-17
  • 打赏
  • 举报
回复
传this
Cricketol 2007-08-27
  • 打赏
  • 举报
回复
我支持用指针!
rsp19801226 2007-08-27
  • 打赏
  • 举报
回复
大家都说完了。同上。
cmoth 2007-08-24
  • 打赏
  • 举报
回复
是的,不过一般通用的做法都是把this指针当线程参数传进去,这样灵活性更大一些。
kakashi0309 2007-08-24
  • 打赏
  • 举报
回复
传个结构体 里面随便放什么 都行...
linuxpgy 2007-08-24
  • 打赏
  • 举报
回复
传this指针
传this指针
传this指针
传this指针
传this指针
传this指针
rabbit729 2007-08-23
  • 打赏
  • 举报
回复
to:Avoid(千金散尽还复来)
如果按照你上面的把这两个对象声明为静态的就可以在线程函数中直接使用么?不需要传this指针么?谢谢!
Avoid 2007-08-23
  • 打赏
  • 举报
回复
CTest1 m_test1; // CTest1是一个类
CTest2 m_test2; // CTest2是一个类
并且m_test1和m_test2都是类的静态成员函数????

我怎么没看出来?

static CTest1 m_test1; // CTest1是一个类
static CTest2 m_test2; // CTest2是一个类

这样就可以了
rabbit729 2007-08-23
  • 打赏
  • 举报
回复
我的想法是既然ThreadFunc是类的一个成员函数,并且m_test1和m_test2都是类的静态成员函数,那么直接在ThreadFunc中使用不行么?为什么?
Avoid 2007-08-23
  • 打赏
  • 举报
回复
DWORD ThreadId;
CreateThread(NULL,
0,
ThreadFunc ,
(LPVOID)this,
0,
&ThreadId);

把this当作参数传进去

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧