delete this 问题

行路人 2011-11-15 02:27:51
为什么delete this以后还可以访问this指针?应该是不可以访问的呀!附上几行代码:
void CWinThread::Delete()
{
if (m_bAutoDelete)
delete this;
}

CWinThread::~CWinThread()
{
if (m_hThread != NULL)
CloseHandle(m_hThread);
AFX_MODULE_THREAD_STATE* pState = AfxGetModuleThreadState();
if (pState->m_pCurrentWinThread == this)
pState->m_pCurrentWinThread = NULL;
}
...全文
63 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
行路人 2011-11-15
回复4楼:应该是这个理 就是为什么在delete this 的时候F11不能跟到析构函数里去
回复
pengzhixi 2011-11-15
析构函数当然有this指针啦,不然你觉得是析构谁呢
回复
行路人 2011-11-15
回复2楼:那为什么析构函数中还可以看到this指针呢(调试的时候看到执行delete this后,局部变量窗口就没了this,运行到析构函数里 this又冒出来了)
回复
拉卡尼休 2011-11-15
呵呵,因为delete this;是先调用析构函数,再释放内存,所以在析构函数里对象还是完整的。
回复
無_1024 2011-11-15
delete this;
this = NULL;避免野指针的出现
回复
pengzhixi 2011-11-15
在析构函数里面还是可以使用this指针的。不过等析构函数调用完在使用this指针就没什么意义了。
回复
csdn网速很慢 2011-11-15
真的可以吗? 你调试看下this地址。 我觉着不能访问了。
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3849

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2011-11-15 02:27
社区公告
暂无公告