繼承中的構造和析構順序
考慮以下類別層次結構:
struct A { A() { std::cout << "A() C-tor" << std::endl; } ~A() { std::cout << "~A() D-tor" << std::endl; } }; struct B : public A { B() { std::cout << "B() C-tor" << std::endl; } ~B() { std::cout << "~B() D-tor" << std::endl; } A a; };
當B 被創建(如int main() { B b; }),建構和銷毀順序遵循特定的規則:
建構順序:
這將轉換為以下呼叫順序:
銷毀順序:
這會導致以下破壞order:
因此,建構順序從基底類別開始,繼續到成員字段,最後到派生類別。銷毀順序與建構順序相反。
以上是C繼承中構造和析構的順序是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!