栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 初始化方式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 初始化方式

        在C++语言中,初始化和赋值是两种不同的概念,但是经常可以看到使用赋值运算符 = 来进行初始化,如:string str = "hello";这其实是使用了拷贝初始化。本文将以string类为例子,对各种初始化方式进行一个总结。

        下表为string类的各种初始化方式[引自:C++ Primer (第五版)]:

        

1. 默认初始化

        表中string类的第一种初始化方式称为默认初始化,用户没有给string实例s1一个初值,s1将是一个空string。

2. 拷贝初始化

        表中第三、五行的初始化方式(使用 =)都属于拷贝初始化,第三行将s1的内容拷贝到s2中,第五行将字面值"value"拷贝到s3中。这实际上是调用了string类的operator =,并且发生了隐式的类型转换。

3.直接初始化

        表中第二、四、六行的初始化方式都属于直接初始化,第二行将s2拷贝s1中,第四行将字面值"value"(不包括末尾的空字符)拷贝到s3中。

        需要注意的是第六行,第六行将s4初始化为由连续n个字符c组成的串,这使用了不止一个参数(例子中使用了n和‘c’)。直接初始化的本质是调用构造函数,string的构造函数有多个重载版本。当输入参数只有一个(欲赋予的字符串)的时候,使用直接初始化和拷贝初始化都可以;当输入参数有多个的时候,只能使用直接初始化的方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号