温馨提示×

C++继承机制的析构顺序如何

c++
小樊
84
2024-11-08 23:44:25
栏目: 编程语言

在C++中,继承机制的析构顺序与对象的构造顺序相反。当一个类对象被销毁时,它的析构函数会被调用。对于具有基类和派生类层次结构的对象,析构顺序如下:

  1. 首先调用派生类的析构函数。
  2. 然后,依次调用每个基类的析构函数(从最基类到最派生类)。

这种析构顺序确保了在派生类对象销毁时,基类部分已经被正确地清理。下面是一个简单的例子:

#include <iostream>

class Base {
public:
    Base() { std::cout << "Base constructor" << std::endl; }
    ~Base() { std::cout << "Base destructor" << std::endl; }
};

class Derived : public Base {
public:
    Derived() { std::cout << "Derived constructor" << std::endl; }
    ~Derived() { std::cout << "Derived destructor" << std::endl; }
};

int main() {
    Derived d; // 构造顺序:Base -> Derived
    return 0;   // 析构顺序:Derived -> Base
}

在这个例子中,我们创建了一个派生类Derived的对象,它继承自基类Base。当对象被创建时,首先调用Base类的构造函数,然后调用Derived类的构造函数。当对象被销毁时,首先调用Derived类的析构函数,然后调用Base类的析构函数。

0