您的位置:首页 > 编程语言 > C语言/C++

C++构造函数与析构函数的调用顺序

2017-03-14 15:13 387 查看
父类构造函数-->按照类内声明顺序初始化各成员变量(如果是类则调用其构造函数)(构造函数初始化列表并不能改变该顺序)-->调用该类构造函数

该类析构函数-->按照类内声明顺序相反的方向析构各成员变量-->父类的析构函数

示例代码

using namespace std;

class A
{
public:
A() { cout << "A is created!" << endl; }
~A() { cout << "A is destroyed!" << endl; }
};
class B
{
public:
B() { cout << "B is created!" << endl; }
~B() { cout << "B is destroyed!" << endl; }
};
class C
{
public:
C() { cout << "C is created!" << endl; }
~C() { cout << "C is destroyed!" << endl; }
};

class D : public C
{
B b;
A a;
public:
D():a(), b() { cout << "D is created!" << endl; }
~D() { cout << "D is destroyed!" << endl; }
};
int main(int argc, char* argv[])
{
D d;
}
输出:

C is created!
B is created!
A is created!
D is created!
D is destroyed!
A is destroyed!
B is destroyed!
C is destroyed!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  学习笔记 C++