【发布时间】:2011-01-12 19:24:13
【问题描述】:
出于演示目的考虑这个类:
class test{
private:
int y;
HANDLE handle;
static int x;
public:
test()
int add();
static int sub();
}
test::test() {
[....]
sub = 1;
handle = (HANDLE)_beginthreadex(NULL,0,&test::sub,NULL,0,0);
}
test::sub() {
[....]
_endthreadex(0)
}
我对静态方法/变量有点不确定,现在我有几个问题;
1) 如果我创建一个 test 的类实例,然后调用 delete test,静态变量是否也被清理了?如果没有,我是否需要在析构函数中使用 delete() 手动清理所有静态变量(或者是 free())?
2) 当运行 sub() 的线程以 _endthreadex 终止时,是否需要对静态方法进行手动清理?如您所见,句柄变量是指线程。
提前致谢
【问题讨论】:
标签: c++ multithreading winapi memory-management static