码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-09-15 10:16:58      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:targe   str   函数   链接   情况   color   span   log   默认   

原文链接:http://blog.csdn.net/yuliu0552/article/details/6631509

 

 

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

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

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

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

常量不能被赋值,只能被初始化,所以必须在初始化列表中完成;

C++的引用也一定要初始化,所以必须在初始化列表中完成。

    1) 引用必须被初始化,指针不必;

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

    3) 不存在指向空值的引用,但是存在指向空值的指针。

 

另外,子类在初始化自己时,如果父类没有默认的构造函数那么也必须用初始话列表进行初始化,在列表里调用父类的构造函数

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

标签:targe   str   函数   链接   情况   color   span   log   默认   

原文地址:http://www.cnblogs.com/aliceluorong/p/7524426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!