2.4 成员初始化列表
来源:互联网 发布:手机淘宝收藏不了店铺 编辑:程序博客网 时间:2024/06/09 21:44
Q1:必须在构造函数的初始化列表中进行初始化的四种情况:
1) 初始化一个引用成员时2) 初始化一个常量成员3) 调用基类的构造函数时4) 调用类成员的构造函数时
• 除了上述四种,程序可以正确编译并执行,不过效率将有可能降低。如下:
class X { string _name; int _cnt; public: X() { _name = ""; _cnt = 0; } };
在这种情况下,效率将远低于在初始化列表中直接调用_name成员的构造函数,编译器扩展后的结果:
class X { string _name; int _cnt; public: X() { _name.string::string(); //调用string 的默认构造函数 string temp = string(""); //创建临时对象 temp _name.string::operator=(temp); //调用赋值操作符为_name成员赋值 temp.string::~string(); //销毁临时对象 _cnt = 0; } };
Q2:构造函数初始化列表中成员的初始化顺序由类成员的声明顺序决定,与初始化列表中的排列顺序无关
• 初始化列表中的初始化操作在构造函数体内语句执行前结束
0 0
- 2.4 成员初始化列表
- 2.4 成员初始化列表
- 成员初始化列表
- C++成员初始化列表
- 成员初始化列表
- C++ 成员初始化列表
- C++成员初始化列表
- 成员初始化列表
- C++成员初始化列表
- 成员初始化列表
- C++成员初始化列表
- c++初始化成员列表
- 初始化成员列表
- C++初始化成员列表
- C++ 成员初始化列表
- C++初始化成员列表
- 成员初始化列表
- C++成员初始化列表
- CoreImage 处理图片
- 2015071602 - 夏季养生
- LeetCode Search a 2D Matrix(二分查找法)
- IO
- C语言中结构体的声明方式
- 2.4 成员初始化列表
- Java中equals和==的区别
- 产品文案要直白浅显
- centos6.0 配置无密码sudo权限
- C++之纯虚函数
- Memcache技术分享:介绍、使用、存储、算法、优化、命中率
- 屏幕适配
- js实现addClass,removeClass
- 2015071603 - 中国互动和京东