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

c++系列 - 变量初始化

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

c++系列 - 变量初始化

拷贝初始化
int a = 5;
直接初始化
int a(5);

对于基本类型(int,double等),直接初始化和拷贝初始化效率一样。但对于复杂类型,直接初始化效率比拷贝初始化效率高。
直接初始化不支持所有类型的初始化,例如一个包含列表类型的对象。

花括号初始化
int a { 5 };     // 推荐
int a = { 5 };

花括号初始化,不允许隐式转换。例如:

int a = { 4.5 };

如果是拷贝和直接初始化,小数部分会被舍弃。但花括号初始化,会无法通过编译。

总结

花括号统一了初始化方式:

[new] T [object] { arg1, arg2, ... };
  1. 花括号内的参数不全时,称为值初始化,根据T的类型进行初始化
  2. 没有花括号时,称为默认初始化 。此时:
    非class类型变量(int, double, …):如果是全局变量,此时会转为值初始化。如果是局部变量,该值是不确定的。
    class类型变量(string, object, …):调用默认构造函数进行初始化
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966338.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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