在C++中,類的繼承析構函數執行是指當一個派生類對象被銷毀時,其析構函數會被自動調用,從而確保基類和派生類中的資源得到正確釋放
當一個類被繼承時,基類的析構函數會在派生類的析構函數之前被調用。這是因為派生類的析構函數需要首先調用基類的析構函數來確保基類中的資源得到正確釋放。然后,派生類中的析構函數會被調用,以釋放派生類中的資源。
以下是一個簡單的示例,展示了C++類的繼承和析構函數執行的過程:
#include <iostream>
class Base {
public:
Base() {
std::cout << "Base constructor called" << std::endl;
}
~Base() {
std::cout << "Base destructor called" << std::endl;
}
};
class Derived : public Base {
public:
Derived() {
std::cout << "Derived constructor called" << std::endl;
}
~Derived() {
std::cout << "Derived destructor called" << std::endl;
}
};
int main() {
Derived d; // 創建一個派生類對象
return 0; // 當main函數結束時,派生類對象會被銷毀,從而調用其析構函數
}
輸出結果:
Base constructor called
Derived constructor called
Derived destructor called
Base destructor called
從輸出結果可以看出,當派生類對象被銷毀時,基類和派生類的析構函數按照逆序被調用。這樣可以確保基類和派生類中的資源得到正確釋放。