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

c++构造函数和析构函数调用顺序

作者:野牛程序员:2023-07-03 10:00:11 C++阅读 2596

在C++中,构造函数和析构函数的调用顺序是确定的,遵循以下规则:

  1. 构造函数的调用顺序:

    • 基类构造函数先于派生类构造函数被调用。

    • 派生类构造函数按照它们在继承链中的顺序被调用,从基类到派生类。

  2. 析构函数的调用顺序:

    • 派生类的析构函数先于基类的析构函数被调用。

    • 派生类析构函数按照与构造函数相反的顺序被调用,从派生类到基类。

下面是一个示例代码,演示了构造函数和析构函数的调用顺序:

#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 derivedObj;
    return 0;
}

输出结果将是:

Base constructor called
Derived constructor called
Derived destructor called
Base destructor called

在这个示例中,Derived 类继承自 Base 类。当创建 Derived 类的对象 derivedObj 时,先调用 Base 类的构造函数,然后调用 Derived 类的构造函数。当 derivedObj 对象的生命周期结束时,先调用 Derived 类的析构函数,然后调用 Base 类的析构函数。

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

最新推荐

热门点击