社区
C++ 语言
帖子详情
delete this 有什么后果?
bamboostflying
2006-11-24 09:36:01
我的一个class A{
public:
A *pThis ;
void Func();
}
A::A()
{
pThis = this;
}
void A::Func()
{
A *a = new A;
//do something to a
delete pThis;
pThis = a;
}
这样操作后,没有发现程序异常,只是this指向的类怎么都没有初始化
过一会不知道做了什么操作以后,this又指向次类了?
能解释一下吗
...全文
262
10
打赏
收藏
delete this 有什么后果?
我的一个class A{ public: A *pThis ; void Func(); } A::A() { pThis = this; } void A::Func() { A *a = new A; //do something to a delete pThis; pThis = a; } 这样操作后,没有发现程序异常,只是this指向的类怎么都没有初始化 过一会不知道做了什么操作以后,this又指向次类了? 能解释一下吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taodm
2006-11-24
打赏
举报
回复
汗!delete this后就不可以再对这个对象做任何访问了。
alan001
2006-11-24
打赏
举报
回复
delete p;后空间释放,但p不会变成NULL.............
KthTes
2006-11-24
打赏
举报
回复
楼主这个delete this似乎没啥必要。
KthTes
2006-11-24
打赏
举报
回复
delete this是在类不知道什么时候被干躺的时候才用的。比如A类对象要同时被B,C干,BC双方互相不知道对方什么时候干完,于是只能添加一个“引用计数”,让A自己决定什么时候自杀。
jixingzhong
2006-11-24
打赏
举报
回复
指针 只是指向一个地址,
delete 只是 析构+释放 某个地址内的对象,
两者不冲突 ...
只是 在 delete 后,
如果指针还在这里,
运行会 出错 ....
huangyangman
2006-11-24
打赏
举报
回复
调用Func()的对象是new出来的吗?
vigorous001
2006-11-24
打赏
举报
回复
//我要是不delete pThis,只把pThis = a;那内存岂不是泄漏了?
不会泄漏吧,析构就行了。
westdot
2006-11-24
打赏
举报
回复
void A::Func()
{
A *a = new A;
//do something to a
delete pThis;
pThis = a;
}
delete pThis这句把本对象的内存空间释放了,你接着又pThis = a来访问pThis。显然是错的。
bamboostflying
2006-11-24
打赏
举报
回复
嗯 我想了想,不应该delete pThis, 这里我调用一下析构函数就行了 delete this肯定绘出问题
bamboostflying
2006-11-24
打赏
举报
回复
我要是不delete pThis,只把pThis = a;那内存岂不是泄漏了?
cpp 类成员函数
delete
this 会发生什么?
cpp 类成员函数
delete
this 会发生什么?
delete
this
delete
p执行了哪些步骤?
C++每日面试之
delete
this 合法吗?
合法,但:
关于
delete
this
在类的成员函数中能不能使用
delete
this? 答:能!在某些设计模式中需要赋予对象自我销毁的能力,这个时候就可以使用
delete
this将该对象的this指针进行删除,但是需要确定的是不能在访问该对象的数据成员,或需要调用访问这些成员的函数,虽然还是可以访问,但数据已经是不安全的。 使用
delete
this的注意事项: 1.通常情况下
delete
this 往往是跟对象指针一起使用
浅谈C++
delete
this
1.为什么需要
delete
this?
delete
this,可以让某种类型的对象拥有自杀的能力。有些设计模式,如状态模式,在状态转换可能需要使用
delete
this。 2.使用
delete
this使用的注意事项 2.1要保证对象被分配到heap内,this对象是必须是用 new操作符分配的(亦不能用placement new,因为无法确定内存位置是否在hea
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章