C++构造函数初始化列表——笔记
来源:互联网 发布:如何注册手机淘宝店铺 编辑:程序博客网 时间:2024/05/02 00:34
构造函数分两个阶段执行:(1)初始化阶段; (2)普通的计算阶段。
计算阶段由构造函数函数体内的所有语句组成。初始化发生在计算阶段之前。
不管成员是否在构造函数初始化列表内显式初始化,类类型的成员总是在初始化阶段初始化。所以在初始化列表中对成员初始化,比在计算阶段对成员进行赋值要来得效率,因为即使没有显式的提供初始化列表,编译器也会隐式的对类类型成员进行初始化。
在构造函数列表中没有显式提及的每个成员,使用与初始化变量相同的规则进行初始化。
没有默认构造函数的类类型成员,以及const或引用类型的成员,不管是哪种类型,都必须在构造函数初始化列表中初始化。因为不管成员是否在构造函数初始化列表内显式初始化,类类型的成员总是在初始化阶段初始化。如果此时编译器找不到该类的默认构造函数就会报错。可以初始化const或引用对象,但是不能对他们进行赋值,所以初始化const或引用对象的唯一机会就是在构造函数的初始化列表,在执行构造函数体时,才对他们赋值时错误的。
类成员的初始化顺序与类定义中定义成员的顺序相同,与初始化列表中成员出现的先后次序无关。
将构造函数声明为explicit,可以防止编译器调用构造函数进行隐式的类型转换,但explicit只能在类定义体中声明,同样声明友元函数时的关键字friend也之能出现在类定义体中。
0 0
- C++构造函数初始化列表——笔记
- 【C/C++】构造函数的初始化列表
- 构造函数初始化列表(C++)
- C++ 构造函数初始化列表学习笔记
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- 构造函数初始化列表
- ubuntu下 vi编辑器使用手册
- Matlab学术图表色彩选择
- 386计算机毕业设计
- 关于 Windows 中的时区信息
- Access 在VBA中实现数据导出到Excel
- C++构造函数初始化列表——笔记
- 百钱买百鸡问题
- 是男人就下100层【第一层】——高仿微信界面(2)
- Ubuntu 下Mysql常用命令
- 分数拆分
- C语言经典算法100例-009-输出国际象棋棋盘
- HTML5 Video
- 读懂diff
- 简明Vim练级攻略