为什么析构函数必须是虚函数
时间: 2023-10-16 16:03:53 浏览: 139
c++虚析构函数及虚函数的详细例子.rar
析构函数必须是虚函数的原因是因为在C++中,当一个对象的指针被删除时,如果这个对象有派生类,则只会调用基类的析构函数,而不会调用派生类的析构函数,这会导致派生类中的资源无法被正确释放,从而导致内存泄漏等问题。如果将基类的析构函数声明为虚函数,那么当删除一个派生类的指针时,会先调用派生类的析构函数,再调用基类的析构函数,从而释放所有资源,避免了内存泄漏等问题。因此,如果一个类可能会被继承,那么它的析构函数应该声明为虚函数。
阅读全文