你好,这里是c++系列学习的小专题系列,致力于创造出短小精悍的技术博客。
目录
如有缺漏,欢迎评论区指出!~\(≧▽≦)/~
初始化列表简介
构造函数初始化列表一般在类中出现。
初始化列表:以一个
冒号开始
,接着是一个以
逗号分隔的数据成员列表
,每个
"
成员变量
"
后面跟一个
放在括
号中的初始值或表达式。(初始化列表可以认为是成员变量定义的地方)
上代码:
class Myclass
{
public:
Myclass(int sign, int data)
:_sign(sign) //用输入值sign来初始化成员变量_sign
, _data(data)
{}
private:
int _sign;//成员变量声明处
int _data;
};
【注意】
- 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)。
- 类中包含以下成员,必须放在初始化列表位置进行初始化:引用成员变量,const修饰的成员变量,没有默认构造函数的自定义类型成员。
- 成员变量在类中的声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后顺序无关。以下为验证代码:
class Myclass
{
public:
Myclass(int a)
:_sign(_data) //初始化列表处
, _data(a)
{}
void Print()
{
cout << _data << "\n" << _sign << endl;
}
private:
int _sign;//成员变量声明处
int _data;
};
int main()
{
Myclass A(1);
A.Print(); //类A 中成员_data的值为1,_sign的值为随机值
}
为什么要使用初始化列表
- 因为不管你是否使用初始化列表,对于自定义类型的成员变量,一定会先使用初始化列表初始化。
- 便于集中给成员变量进行指定内容初始化。