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

[C++]多个对象构造、析构、构造和析构的顺序

2016-09-29 10:58 253 查看
#include <iostream>//多个对象构造和析构//1)当类中有成员变量是其它类的对象时,首先调用成员变量的构造函数,调用顺序与声明顺序相同;//之后调用自身类的构造函数//2)析构函数的调用顺序与对应的构造函数调用顺序相反////2、类成员中若有const修饰,必须在对象初始化的时候,给const int n 赋值//当类成员中含有一个const对象时,或者是一个引用时,他们也必须要通过成员初始化列表进行初始化//2)C++中提供初始化列表对成员变量进行初始化//语法规则//Constructor::Contructor() : m1(v1), m2(v1,v2), m3(v3)//{//    // some other assignment operation//}//3)注意概念//初始化:被初始化的对象正在创建//赋值:被赋值的对象已经存在////4)注意://成员变量的初始化顺序与声明的顺序相关,与在初始化列表中的顺序无关//初始化列表先于构造函数的函数体执行
using namespace std;
class Parent{public: Parent(int ma, int mb){ a = ma; b = mb; cout << "a: " << a << " b: " << b << " Parent"<< endl; } ~Parent(){ cout << "Parent析构了..." << endl; getchar(); //测试 }
private: int a; int b;
};
class child{public: child():p1(1,2), p2(3,4),n(10) { cout << "child..." << endl; } ~child(){ cout << "child析构了..." << endl; getchar(); //测试 }private: Parent p1; Parent p2; const int n;};int main(){ child ch; getchar(); return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: