Write the execution sequence of the destructuring function
寫出解構函式執行順序
假設類別 A、B、C、D 的繼承關係如下:
class A;
class B;
class C: B;
class D: C { A object;}
main() {
D objectD;
},程式執行後,
請寫出解構函式的呼叫順序
答案
在這個繼承關係中,當物件 `objectD` 的生命週期結束時,相應的解構函式(Destructor)會被呼叫。解構函式的呼叫順序是由子類別到父類別的順序,即從最底層的子類別到最頂層的父類別。 在這個例子中,`D` 繼承自 `C`,而 `C` 繼承自 `B`,因此呼叫解構函式的順序是 `D` -> `C` -> `B`。 由於 `D` 類別中包含一個 `A` 類別的物件,因此在呼叫完 `B` 的解構函式後,還會呼叫 `A` 的解構函式。 總結呼叫順序:`D` 的解構函式 -> `C` 的解構函式 -> `B` 的解構函式 -> `A` 的解構函式。
Comments
Post a Comment