− 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指向类的析构函数,所以会无限递归下去。