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++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- C++之派生类的构造函数和析构函数调用顺序
- C++中对象作为函数形参,返回值时,构造函数,复制构造函数,析构函数的调用顺序(1)
- C++ 构造函数和析构函数的调用顺序、虚析构函数的作用
- C++多个类中构造函数与析构函数的调用顺序
- C++中构造函数与析构函数的调用顺序
- c++深/浅拷贝 && 构造函数析构函数调用顺序练习题
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- c++学习笔记4,派生类的构造函数与析构函数的调用顺序(一)
- C++继承中构造函数和析构函数的调用顺序
- C++中构造函数与析构函数的调用顺序
- 【c++继承】继承关系中派生类对象构造函数和析构函数调用顺序
- C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定
- C++调用构造函数与析构函数的顺序
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- C++派生类构造函数和析构函数调用顺序
- C++继承中析构函数 构造函数的调用顺序以及虚析构函数
- C++中多个类继承时构造函数与析构函数的调用顺序
- C++中构造函数与析构函数的调用顺序详解