当前位置:首页 C++ > 正文

c++子类析构时要调用父类的析构函数吗?

作者:野牛程序员:2023-07-15 10:53:42 C++阅读 2952

在 C++ 中,当一个子类对象被销毁时,会自动调用父类的析构函数。这是因为子类对象包含了从父类继承而来的成员变量和方法,而在对象销毁的过程中,首先会销毁子类对象的成员,然后再销毁父类对象的成员。

析构函数的调用顺序是从派生类到基类,即先调用子类的析构函数,再调用父类的析构函数。这确保了正确的对象清理和资源释放顺序,即先释放派生类自己的资源,然后再释放父类的资源。

下面是一个示例代码,展示了子类和父类的析构函数的调用顺序:

#include <iostream>

class Parent {
public:
    Parent() {
        std::cout << "Parent Constructor" << std::endl;
    }

    ~Parent() {
        std::cout << "Parent Destructor" << std::endl;
    }
};

class Child : public Parent {
public:
    Child() {
        std::cout << "Child Constructor" << std::endl;
    }

    ~Child() {
        std::cout << "Child Destructor" << std::endl;
    }
};

int main() {
    Child child;
    return 0;
}

输出结果为:

Parent Constructor
Child Constructor
Child Destructor
Parent Destructor

可以看到,子类的析构函数被调用后,父类的析构函数也会被自动调用。这种自动调用父类析构函数的机制确保了派生类和基类的析构过程都能被正确执行,从而避免资源泄露和不一致的情况发生。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击