C++有哪几种状况只能用初始化列表,而不能用赋值?

C++有哪几种状况只能用初始化列表,而不能用赋值?

(1)对于const和reference类型成员变量,它们只可以被初始化而不能作赋值操做,所以只能用初始化列表; 函数

初始化与赋值是不一样的:
赋值是删除原值,赋予新值,构造函数的意思是先开辟空间而后为其赋值,只能算是赋值不算初始化; spa

初始化列表就不同了,开辟空间和初始化是同时完成的,直接给予一个值; .net

常量不能被赋值,只能被初始化,因此必须在初始化列表中完成; 指针

C++的引用也必定要初始化,因此必须在初始化列表中完成。 对象

blog

    1) 引用必须被初始化,指针没必要; get

    2) 引用初始化之后不能被改变,指针能够改变所指的对象; 变量

    3) 不存在指向空值的引用,可是存在指向空值的指针。 构造函数

引用

上面这一段摘自:http://blog.csdn.net/yuliu0552/article/details/6631509

另外,子类在初始化本身时,若是父类没有默认的构造函数那么也必须用初始话列表进行初始化,在列表里调用父类的构造函数。

相关文章
相关标签/搜索