//以前学习中很模糊的一些概念 结构函数初始化列表以一个冒号开始, 接着是以逗号分隔的数据成员列表, 并没有停止显式的初始化。 推荐使用类结构函数初始化列表。 成员类型是没有默认结构函数的类。 若没有提供显示初始化式, 则编译器隐式使用成员类型的默认结构函数, //结构函数初始化列表 //结构函数外部赋值 初始化数据成员与对数据成员赋值的含义是什么?有什么区别? 首先把数据成员按类型分类并分状况阐明: 1. 内置数据类型, 复合类型(指针, 在功能和结果上都是一样的 2. 用户定义类型(类类型) 结果上相同, 但是功能上存在很大的差异。 也就是说在成员初始化列表处停止结构对象的任务, 在进入函数体之后, 停止的是对曾经结构好的类对象的赋值, 又调用个拷贝赋值操作符才干完成(假设并未提供, 则使用编译器提供的默认按成员赋值行为) 初始化列表的成员初始化顺序: C++初始化类成员时, 是依照声明的顺序初始化的, 而不是依照出现在初始化列表中的顺序。 最初它们有相同的值。 但是编译器先初始化m_x, 因为它们是按这样的顺序声明的。 结果是m_x将有一个不可预测的值。 一个是总是依照你希望它们被初始化的顺序声明成员, 假设你决议使用初始化列表, 总是依照它们声明的顺序罗列这些成员。 这将有助于消弭混淆。
C++类构造函数初始化列表
最新推荐文章于 2024-06-09 20:18:37 发布