1
74
首先,我建议你看看 following talk 赫伯·萨特(Herb Sutter)在文章中对这一主题提出了一些建议。支架初始化讨论开始于 around 23:00 .
当你谈论原始数据类型时,所有3种类型都会产生相同的结果。我个人更喜欢坚持旧的
对于类类型,大括号初始化和老派构造函数初始化不能完全互换。例如:
这是因为
创建a
初始化器列表的特点是它们提供了一致性,这与之前的情况相比是一个受欢迎的变化。例如,如果你要在C++中初始化一个数组,你可以使用:
但是,如果你想初始化一个
使用C++11,你可以使用
大括号初始化有帮助的另一个例子是,它为C++提供了一种解决方法
most vexing parse
根据谈话内容,假设我们有两节课,
不允许您创建
通过支架初始化,您可以动态创建它们,以及
将按预期工作,即传递给重载了
规则是对于对象,使用大括号初始化,除非你有理由不这样做。 |
2
18
对于原始类型,如
第一种风格相当于
从初始化器表达式创建临时对象,然后初始化
第二个直接使用接受一个参数的构造函数初始化对象,如果没有合适的构造函数,则会出错。 第三个取决于可用的构造函数。
不是。有时你需要函数样式初始化来区分
你也不应该称之为“统一初始化”,因为它在任何有意义的意义上都不是“统一的”。官方术语是“支架初始化”。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |