为什么要把C++类中的析构函数声明为虚函数?
2023-05-12 阅读 72
将C++类中的析构函数声明为虚函数的主要原因是为了实现多态性。当一个基类指针指向一个派生类对象并且使用delete操作符释放该指针时,如果基类的析构函数不是虚函数,那么只会调用基类的析构函数,而不会调用派生类的析构函数。这会导致派生类对象中的资源无法被正确释放,从而可能导致内存泄漏等问题。
如果将基类的析构函数声明为虚函数,那么在使用delete操作符释放基类指针时,会先调用派生类的析构函数,然后再调用基类的析构函数,从而确保派生类中的资源被正确释放。
因此,如果一个类可能会被继承,那么必须将其析构函数声明为虚函数,以确保正确的对象销毁。
更新于 2023年05月18日