初始化 , 所有的构造函数都要进行初始化操作 ;
一、构造函数 和 析构函数 调用顺序 说明
1、构造函数调用顺序
在一个类 C 中 , 嵌套了 A 和 B 两个类类型的 对象 作为 成员变量 ;
构造函数的...和 B 在 构造函数 初始化列表 中的顺序 , 与先调用谁的构造函数无关 ;
2、析构函数调用顺序
析构函数调用顺序 与 构造函数调用顺序相反 , 直接 将 构造函数 调用顺序 倒序排列即可 ;
3、...拷贝构造函数也可以定义初始化列表
如果一个类 没有定义 无参构造函数 , 只有一个 有参的构造函数 ,
此时 , C++ 编译器 不会为其 生成 默认的无参构造函数 ;
这种场景下 涉及到了 构造函数...不强制在初始化列表中调用构造函数 : 如果类中定义了 无参构造函数 , 或者 有默认的 无参构造函数 , 那么在 初始化列表 中不强制调用 子对象 的构造函数 ;
使用如下方式 , 声明 A 和 B 类型的成员变量...B 都无法使用 无参构造函数 , 因此在 类 C 的所有构造函数 ( 包括 拷贝构造函数 ) 的 初始化列表中 , 必须强制调用 A 和 B 的 有参构造函数 ;
此外由于 还定义了 const int