在 C++ 中,通常情况下会将析构函数(Destructor)声明为虚函数(virtual destructor)的情况是在以下情况下:
-
基类带有虚函数时:如果一个类是多态的,即有一个或多个虚函数,那么通常情况下应该将析构函数声明为虚函数。这是为了确保在使用基类指针指向派生类对象时,通过基类指针删除对象时可以正确调用派生类的析构函数,从而避免内存泄漏。
-
使用基类指针或引用指向派生类对象:如果你使用基类指针或引用指向派生类对象,并且在运行时通过这些指针或引用来删除对象,那么基类的析构函数应当声明为虚函数,以确保正确调用派生类的析构函数。
示例代码如下:
class Base {
public:
virtual

订阅专栏 解锁全文
519

被折叠的 条评论
为什么被折叠?



