class A{ public: void test(){ delete this; } } ①A a; a.test(); ②A *p = new A(); p->test(); 这个是调用类的成员函数给this指针传参的不同。 第一个给this指针传参&a,但a不是new出来的对象,所以delete出错。 第二个给this指针传参p,p指向new出来的对象,所以delete正常。