delete this的问题

rophie 2013-06-27 09:52:56

class MyClass
{
MyClass();
~MyClass();
public:
void deleteThis(){delete this;}
};
void main()
{
MyClass *myClass=new MyClass;
myClass->deleteThis();
//下面这个还需要吗?
//delete myClass;
//myClass=NULL;
}
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
x363635334 2013-07-01
  • 打赏
  • 举报
回复
1.一个new不要执行两次delete; 特别想用析构的可以手动调用 2.指向NULL给人看的;强用也会提示的
Dobzhansky 2013-06-27
  • 打赏
  • 举报
回复
引用 6 楼 rophie 的回复:
[quote=引用 2 楼 Dobzhansky 的回复:]
void main()
{
    MyClass *myClass=new MyClass;
    myClass->deleteThis();
    //下面不需要了
    //delete myClass;
    myClass=NULL;//这个需要
}
如果myClass里面执行是异步的,你提前设置NULL了咋办[/quote] 设置 NULL, 是一个风格问题, 是给下面的代码看的, 意思就是这个指向不再有效. 对象是异步销毁, 跟这个有干系?
rophie 2013-06-27
  • 打赏
  • 举报
回复
引用 4 楼 nbaallstar901025 的回复:
没有new 就不用delete
有new啊
rophie 2013-06-27
  • 打赏
  • 举报
回复
引用 2 楼 Dobzhansky 的回复:
void main()
{
    MyClass *myClass=new MyClass;
    myClass->deleteThis();
    //下面不需要了
    //delete myClass;
    myClass=NULL;//这个需要
}
如果myClass里面执行是异步的,你提前设置NULL了咋办
rophie 2013-06-27
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
为何要delete this?自动析构不好吗?
因为想在类内部执行完了自动销毁自身,不清楚什么时候这个类会执行完
Simeone_xu 2013-06-27
  • 打赏
  • 举报
回复
没有new 就不用delete
mujiok2003 2013-06-27
  • 打赏
  • 举报
回复
不需要了.只要new/delete配对就好.
Dobzhansky 2013-06-27
  • 打赏
  • 举报
回复
void main()
{
    MyClass *myClass=new MyClass;
    myClass->deleteThis();
    //下面不需要了
    //delete myClass;
    myClass=NULL;//这个需要
}
图灵狗 2013-06-27
  • 打赏
  • 举报
回复
为何要delete this?自动析构不好吗?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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