我注意到我的 C++ 代码中有一些非常奇怪的东西。
class A
{
public:
void doIt(){cout<<"hello"<<endl;}
};
int main() {
A* a=new A();
A* b=a;
delete a;
b->doIt();
return 0;
}
我认为这delete
会从堆中删除内存并且b->doIt()
会失败。但是在运行这段代码时它可以工作,甚至打印“hello”。
为什么?