原文:【c++】必须在类初始化列表中初始化的几种情况

. 类成员为const类型 . 类成员为引用类型 究其因 const对象或引用只能初始化但是不能赋值。构造函数的函数体内只能做赋值而不是初始化,因此初始化const对象或引用的唯一机会是构造函数函数体之前的初始化列表中。 从无到有叫初始化,初始化 调用拷贝构造函数 创建了新对象 赋值 调用赋值操作符 没有创建新对象,而是对已有的对象赋值。 . 类成员为没有默认构造函数的类类型 原因同样是创建对象 ...

2013-12-17 09:07 1 14033 推荐指数:

查看详情

c++必须使用初始化列表初始化的的四种情况

1. 必须使用初始化列表初始化一个引用成员; 2. 必须使用初始化列表初始化一个常量成员; 3. 初始化派生的基类时,必须使用初始化列表进行初始化; 4. 当初始化话成员对象时,必须使用初始化列表进行初始化; ...

Wed Mar 31 03:24:00 CST 2021 0 416
C++初始化列表

转:https://www.cnblogs.com/BlueTzar/articles/1223169.html 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号初始化式。例如: class CExample ...

Fri Dec 29 21:18:00 CST 2017 0 8098
C++成员变量在初始化列表初始化顺序

引子:我们知道,C++成员变量的初始化顺序与其在的声明顺序是有关的。 先看代码: 程序结果为: 现象:先调用TestClass1的构造函数,再调用TestClass2的构造函数。 原因:在Test,m_tc1变量声明 ...

Sat Sep 28 18:51:00 CST 2019 0 2964
C++引用成员和常量成员的初始化初始化列表

如果一个是这样定义的: 假如在构造函数对三个私有变量进行赋值则通常会这样写: 但是,这样是编译不过的。因为常量和引用初始化必须赋值。所以上面的构造函数的写法只是简单的赋值,并不是初始化。 正确写法应该是: 采用初始化列表实现了对常量和引用 ...

Thu Aug 04 18:52:00 CST 2016 5 14030
c++语言中的静态数据成员为什么必须在类体外初始化?

静态成员属于全局变量,是所有实例以后的对象所共享的,而成员的初始化你可以想象成向系统申请内存存储数据的过程,显然这种共有对象必须提前申请好,而不是由某个实例的对象来操纵的。 #include <stdio.h> class A { public ...

Wed Mar 28 18:53:00 CST 2018 0 1001
C++有哪几种情况只能用初始化列表,而不能用赋值?

原文链接:http://blog.csdn.net/yuliu0552/article/details/6631509 C++有哪几种情况只能用初始化列表,而不能用赋值? (1)对于const和reference类型成员变量,它们只能够被初始化而不能做赋值操作,因此只能用初始化列表 ...

Fri Sep 15 16:46:00 CST 2017 0 1085
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM