C/C++:关于delete this

− 1 − {\green{-1-}} 1

在类对象的内存空间中,只有数据成员和虚表指针,并不包含代码内容。

− 2 − {\green{-2-}} 2

类的成员函数单独放在代码段中

− 3 − {\green{-3-}} 3

在成员函数内部执行delete this之后,只要之后执行内容和this指向的内存块无关,则毫不影响。

但涉及this指针,则会出现不可预期后果。

− 4 − {\green{-4-}} 4

在当前成员函数未结束前,delete this语句并未马上执行,this指向内存块不是马上回收到系统,这时访问数据成员是随机数,访问虚表发生指针无效,系统崩溃。

− 5 − {\green{-5-}} 5

若析构函数执行delete this 会怎样?

会 堆 或 栈 溢 出 {\red{会堆或栈溢出}}

进入析构函数后,执行delete this,delete this本身调用this指向类的析构函数,所以会无限递归下去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值