码迷,mamicode.com
首页 > 其他好文 > 详细

直接初始化&拷贝初始化&值初始化

时间:2017-11-01 00:03:36      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:变量   替代   log   class   类型   全局   特定   赋值   nbsp   

一、变量定义&初始值

0. 变量定义的形式

	//形式一 
    int a;	
	//形式二		
	int b = 1; 

1. 初始值&初始化

对象被初始化:对象在创建时获得了一个特定的值

2. 初始化&赋值

初始化变量的一种方式:用等号=来初始化变量

这种方式让人误以为初始化是赋值的一种,其实不然,初始化不是赋值

初始化:创建变量时赋予其一个初始值

赋值:把对象的当前值擦除,而以一个新值来替代

3. 列表初始化

	int a = {0};
	int a{0};

4. 默认初始化

定义变量时没有指定初值(此时变量被赋予了“默认值”)

内置类型:①全局变量被初始化为0,②局部变量不被初始化(值是未定义的)

类类型:①有默认构造函数则由默认构造函数初始化,②无默认构造函数同内置类型

 

二、直接初始化&拷贝初始化

0. 形式

	string s1 = "hello";		//拷贝初始化 
	string s2("hello");			//直接初始化

1. 拷贝初始化

使用等号=初始化一个变量(编译器把等号右侧的初始值拷贝到新创建的对象中去)

2. 直接初始化

不使用等号=

3. 联系与区别

初始值只要一个时,使用直接初始化或拷贝初始化都行

初始值有多个时,则倾向于使用直接初始化(非要用拷贝初始化也可以)

	string s3(10, ‘c‘); 		//直接初始化
	string s4 = string(10, ‘c‘);//拷贝初始化,显式地创建一个(临时)对象用于拷贝

  

直接初始化&拷贝初始化&值初始化

标签:变量   替代   log   class   类型   全局   特定   赋值   nbsp   

原文地址:http://www.cnblogs.com/xzxl/p/7764314.html

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