首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C++初始化列表

一、什么是初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段 二、构造函数执行分为初始化和构造两个阶段,且初始化化阶段优先于计算阶段...三、一个好的原则是,能使用初始化列表的时候尽量使用初始化列表 因为初始化列表有时能少调用一次默认构造函数 四、必须要用初始化列表的时候 1.常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面...2.引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面 3....没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化 五 、成员变量是按照在类中声明的顺序被初始化的而不是在初始化列表中的顺序 struct foo...2 // 3 4 #include "stdafx.h" 5 #include 6 using namespace std; 7 8 class A 9 { 10

76190

C++11就地初始化列表初始化

,一是使用等号“=”,二是使用大括号列表初始化的方式。...1.2就地初始化初始化列表的先后顺序 C++11标准支持了就地初始化非静态数据成员的同时,初始化列表的方式也被保留下来,也就是说既可以使用就地初始化,也可以使用初始化列表来完成数据成员的初始化工作。...当二者同时使用时,并不冲突,初始化列表发生在就地初始化之后,即最终的初始化结果以初始化列表为准。...参考如下代码: #include using namespace std; class Mem { public: Mem(int i,int j):m1(i),m2(j) {...从C++11开始,对列表初始化(List Initialization)的功能进行了扩充,可以作用于任何类型对象的初始化,至此,列表初始化方式完成了天下大一统。

4.6K10

【C++】构造函数初始化列表 ③ ( 构造函数 的 初始化列表 中 为 const 成员变量初始化 )

构造函数初始化列表 总结 : 初始化列表 可以 为 类的 成员变量 提供初始值 ; 初始化列表 可以 调用 类的 成员变量 类型的 构造函数 进行成员变量初始化操作 ; 初始化列表 可以 使用 构造函数...初始化 , 所有的构造函数都要进行初始化操作 ; 一、构造函数 的 初始化列表 中 为 const 成员变量初始化 1、初始化 const 常量成员 如果 类 中定义了 被 const 修饰 的 成员变量..., 那么该成员变量 必须被初始化 , 否则会报错 ; 对象中的 const 成员 必须在 声明后 立刻进行初始化 ; const 成员的初始化 只能通过 构造函数 的 初始化列表 进行初始化 ; 注意..., 对 常量成员 进行初始化操作 ; 3、正确代码示例 - 在初始化列表初始化常量成员 在下面的 类 B 中 , 所有的 构造函数 中 , 都要使用 初始化列表 初始化 常量成员 , 只要遗漏一个构造函数...类型成员变量 const int m_const_int; // 常量成员 }; 执行结果 : 4、完整代码示例 完整代码示例 : #include "iostream" using namespace std

17730

C++之初始化列表

:13:10: error: uninitialized const member in ‘class Test’ Test t; 代表类中可以定义const成员变量, 但是面临的问题是: 如何初始化类中...const 成员变量 这时候引入本文的重点, 初始化列表出场: 类成员的初始化 C++ 中提供了初始化列表对成员变量进行初始化 语法规则 ClassName::ClassName() :...m1(v1), m2(v1,v2),m3(v3) { //some other initialize operation } 注意事项 成员的初始化顺序与成员的声明顺序相同 成员的初始化顺序与初始化列表中位置无关...初始化列表先于构造函数的函数体执行 修改上述代码如下: #include class Test { private: const int ci; public:...小结 类中可以使用初始化列表对成员进行初始化 初始化列表先于构造函数体执行 类中可以定义const 成员变量 const 成员变量必须在初始化列表中指定初值 const 成员变量为只读变量

80360

类——构造函数之初始化列表

1.2.2初始化列表的格式 初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。...如下图  如果在成员变量处添加了默认值(缺省值),在初始化列表处又该如何运行的呢?  ...:初始化列表的缺省值——定义缺省值) 1.2.5初始化列表的顺序 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后 次序无关。...小结         尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化,即在创建新的类对象时,都会调用构造函数,也都会经过初始化列表(就算你不写...尽量使用初始化列表初始化还有个好处,就是将初始化的步骤可以尽可能的放在一起,而构造函数体内就可以写其它的需求实现,比如访问或修改除了新类对象的其它变量等等,就可增加代码的可读性。

79720
领券