delete一个指针时发生的事情

在对一个指针调用delete函数时发生了两件事情:
  • 调用了指针所指向对象的析构函数。
  • 对象所占用的内存被释放回系统。
所以,当一个基类的指针或引用有可能指向基类,也可能指向派生类,那么delete时到底是调用基类的析构函数还是派生类的析构函数呢?
答案就是让析构函数编程虚拟函数。

如果一个指针被delete之后,这个指针变量还是存在的,只是它所指向的内存空间被释放了,我们可以继续给这个指针变量赋值,使它指向另外的空间。

你可能感兴趣的:(C++,析构)