一、类对象作为成员变量时的构造函数问题
1、问题描述
如果 一个类 A 的对象 作为 另外一个类 B 的成员变量时 ,
在以下场景会报错 :
为类 A 定义 有参的 构造函数 , 那么 A 的无参默认构造函数就失效了...无参构造函数创建 A 对象 , 但是 A 的 无参构造函数无法使用 , 必须使用 A 的有参构造函数 , 这里就出现问题 , 报错 “B::B(void)”: 由于 数据成员“B::m_a”不具备相应的...是一种用于初始化类的成员变量的方法 ;
构造函数初始化列表 可实现功能 :
为成员变量提供初始值
调用其他 成员变量的 构造函数 来初始化成员变量
构造函数初始化列表语法规则 :
构造函数() : 成员变量名称...(成员变量值) , 成员变量名称(成员变量值)
{
// 构造函数内容
}
构造函数初始化列表 位置在 构造函数 的 参数列表之后 , 冒号 : 与花括号 {} 之间 ;
使用 逗号 , 分隔 ;...初始化列表中的元素由 成员变量的名称 和 初始值组成 , 使用等号 = 连接 ;
在下面的代码中 , 为 B 类定义了默认的构造函数 , 其中定义了 构造函数 初始化列表 ;
在 初始化列表中 ,
m_age