成员初始化列表
2017-03-18 17:44
176 查看
1、对于const数据成员,必须在执行到构造函数体之前,即创建对象时进行初始化。
2、成员初始经列表由逗号分隔的初始化列表组成(前面带冒号)。它位于参数列表的右括号之后、函数体左括号之前。
3、初值可以是常量或构造函数的参数列表中的参数,这种方法并不限于初始化常量。
例如下代码:
Queue::Queue(int qs) : qsize(qs), front(NULL), rear(NULL), items(0)
{
}
4、只有构造函数可以使用这种初始化列表语法。对于const类成员,必须使用这种语法。另外,对于被声明为引用的类成员,也必须使用这种语法。这是因为引用和cosnt数据类似,只能在被创建时进行初始经。对于简单数据成员使用成员初始化列表和在函数体中使用赋值没有什么区别。
5、对于本身就是类对象的成员来说,使用成员初始化列表效率更高。
6、从概念上说,这些初始化工作是在对象创建时完成的,此时还未执行括号中的任何代码。
7、不能将成员初始化列表语法用于构造函数之外的其他类方法。
8、必须用这种格式来初始化非静态const数据成员。
9、必须用这种格式来初始化引用数据成员。
2、成员初始经列表由逗号分隔的初始化列表组成(前面带冒号)。它位于参数列表的右括号之后、函数体左括号之前。
3、初值可以是常量或构造函数的参数列表中的参数,这种方法并不限于初始化常量。
例如下代码:
Queue::Queue(int qs) : qsize(qs), front(NULL), rear(NULL), items(0)
{
}
4、只有构造函数可以使用这种初始化列表语法。对于const类成员,必须使用这种语法。另外,对于被声明为引用的类成员,也必须使用这种语法。这是因为引用和cosnt数据类似,只能在被创建时进行初始经。对于简单数据成员使用成员初始化列表和在函数体中使用赋值没有什么区别。
5、对于本身就是类对象的成员来说,使用成员初始化列表效率更高。
6、从概念上说,这些初始化工作是在对象创建时完成的,此时还未执行括号中的任何代码。
7、不能将成员初始化列表语法用于构造函数之外的其他类方法。
8、必须用这种格式来初始化非静态const数据成员。
9、必须用这种格式来初始化引用数据成员。
相关文章推荐
- 成员初始化列表
- 在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序。
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++中的成员初始化列表
- C++成员初始化列表
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- 条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 【警告:当在这里初始化时】初始化列表中成员变量初始化顺序问题
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- 关于c++的class(偏c++11以前,构造、静态成员、const、初始化列表、友元、内联、template)
- C++成员初始化列表使用总结
- C++成员变量初始化列表和变量初始化顺序
- 成员初始化列表
- C++对象模型(四):class成员初始化列表(Member Initialization List)
- C++中成员初始化列表的使用
- 成员初始化列表和构造函数体中的区别
- 构造函数中,成员变量一定要通过初始化列表来初始化
- 关于成员初始化参数列表的总结
- [原创]C++中成员初始化列表的使用!!!
- 九、构造函数和析构函数(三) 初始化列表、对象成员初始化、const,引用成员初始化