多態基類的析構函數應該設計為虛析構函數。這樣可以確保當派生類對象被刪除時,會首先調用派生類的析構函數,再調用基類的析構函數,從而正確釋放派生類對象的資源。示例代碼如下:
class Base {
public:
virtual ~Base() {}
};
class Derived : public Base {
public:
~Derived() {
// 清理派生類對象的資源
}
};
在這個示例中,基類Base的析構函數被聲明為虛析構函數,派生類Derived的析構函數負責清理派生類對象的資源。當Derived對象被刪除時,會先調用Derived的析構函數,再調用Base的析構函數,確保資源正確釋放。