我写了个测试程序,却发现VC/gcc里面,都根本不能这样做:
#include<stdio.h>
class my{
public:
    void f(){delete this;}
    void g(){printf("g\n");}
};
int main(void){
    my m;
    m.g();
    m.f();//这一句就崩溃了。
    printf("self delete\n");
    m.g();
    return 0;
}m.f()会失败,导致程序异常退出。
什么情况下delete this不会有问题呢?为什么Com要delete this?
谢谢!