C++: 类成员初始化列表语法
- 类的成员初始化列表的初始化的基本语法,类的构造函数还可以运用此语法为其变量初始化;
class Class
{
private:
int a;
int b;
char ch;
public:
Class(int a, int b, char ch);
}; Class::Class(int a, int b, char ch) : a(), b(), char(A) // a(1), b(0), char(A) 为Class类为其初始化数据。
{
//插入代码
} - 警告:不能将成员初始化列表语法用于除构造函数之外的其他 “类” 方法。
- 从概念上说:这些初始化工作是在对象创建时完成的,此时还未执行括号内的任何代码;
- 使用时请注意以下几点:
- 这种格式只能用于构造函数;
- 必须用这种格式来初始化非静态 const 数据成员(在C++11 标准之前);
在C++11 标准之中可以使用跟直观的初始化方式;
class Class
{
private:
int a = ;
const int b = ;
......
} //可以在声明是直接进行初始化数据
这种初始化与前面的初始化等价;
- 必须用这种格式初始化引用数据成员;
- 数据成员被初始化的顺序与他们出现在类声明中的顺序相同,与初始化器中的排列顺序无关。
- 如果你愿意也可以为普通变量使用初始化列表初始化
int a = 10; 等价于 int a(0);
C++: 类成员初始化列表语法的更多相关文章
- C++类成员初始化列表的构造顺序
看下面代码, 输出结果是多少呢? class A{ public: A(int k) : j(k), i(j) { } void show() { cout << this->i & ...
- C++类的成员初始化列表的相关问题
在以下四中情况下,要想让程序顺利编译,必须使用成员初始化列表(member initialization list): 1,初始化一个引用成员(reference member): 2,初始化一个常量 ...
- c++类 用冒号初始化对象(成员初始化列表)
c++类 用冒号初始化对象(成员初始化列表) 成员初始化的顺序不同于它们在构造函数初始化列表中的顺序,而与它们在类定义中的顺序相同 #include<iostream> ; using n ...
- C++的成员初始化列表和构造函数体(以前未知)
成员的初始化列表和构造函数在对成员指定初值方面是不一样的.成员初始化列表是对成员初始化,而构造函数,是对成员赋值 成员初始化列表使用初始化的方式来为数据成员指定初值, 而构造函数的函数体是通过赋值的方 ...
- C++类构造函数初始化列表
C++类构造函数初始化列表 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: class CExample {public: ...
- C++:用成员初始化列表对数据成员初始化
1.在声明类时,对数据成员的初始化工作一般在构造函数中用赋值语句进行. 例如: class Complex{ private: double real; double imag; public: Co ...
- VS C++工程类成员初始化检测脚本
最近项目中出现由类成员未初始化而进行读写而造成的问题,于是想将项目中所有的为初始化的地方找出来,优化一下代码,维护了这么多年的程序已有百万余行且VS2015还尚未支持检查类成员初始化的方法.,于是想写 ...
- C++类构造函数初始化列表(转)
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: { public: int a; float b; //构 ...
- C++中成员初始化列表的使用
C++在类的构造函数中,可以两种方式初始化成员数据(data member). 1,在构造函数的实现中,初始类的成员数据.诸如: class point{private: int x,y;public ...
随机推荐
- JS添加或删除HTML dom元素的方法实例分析
本文实例讲述了JS代码添加或删除HTML dom元素的方法.分享给大家供大家参考,具体如下: 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一 ...
- Ionic3关闭弹出页面,跳转到列表后刷新父页面
记得上次写过一篇如何弹出页面的文章,好像是2月28号ionic3 Modal组件那一篇,这篇也算那一篇的续集吧!这篇是弹出的页面关闭后刷新父页面的干活!上代码! 弹出页面:(关闭的时候可以传入值,再父 ...
- 关于C++11右值引用和移动语义的探究
关于C++11右值引用和移动语义的探究
- 【English】十一、一般疑问句
一.一般疑问句定义 参考:英语语法中的一般疑问句和特殊疑问句的区别 英语一般疑问句句型结构 能用yes / no(或相当于yes / no)回答的问句. 二.一般疑问句的句子结构,三种 be动词: ...
- eclipse下解决明明有jar包,却找不到的问题
首先右键提示缺失jar包的项目,也可能是缺失maven依赖的项目. 右键选择properties. 选择deployment assembly. 将缺少依赖的jar包,add进去.
- webpack4介绍
https://github.com/wallstreetcn/webpack-and-spa-guide
- c#面试题汇总(1)
c#面试题汇总 From: https://www.cnblogs.com/suzhiyong1988/p/5069385.html 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...
- centos修改默认启动级别
Linux分为7个启动级别: 0 - 系统停机状态 1 - 单用户工作状态 2 - 多用户状态(没有NFS) 3 - 多用户状态(有NFS) 4 - 系统未使用,留给用户 5 - 图形界面 6 - 系 ...
- 修改rpm中的文件重新打包
1.安装rpmrebuild 和安装rpmbuild rpmrebuild下载链接:https://sourceforge.net/projects/rpmrebuild/files/rpmrebui ...
- 导出zabbix监控数据
linux memory: mysql -u zabbix -p -h 127.0.0.1 zabbix -e "select h.name, 100-AVG(hi.value_avg) f ...