gpt4 book ai didi

c++ - 使用等于运算符或使用花括号为变量赋值之间有区别吗?

转载 作者:太空狗 更新时间:2023-10-29 23:50:43 25 4
gpt4 key购买 nike

我看到一段代码,其中一位程序员使用花括号来初始化一个变量

int var{ 5 };

而不是使用赋值运算符

int var = 5;

我知道使用大括号为 lhs 变量赋值是一种 C++11 语法。两者在使用上有什么区别吗?

感谢您的回复。

最佳答案

它们是不同类型的初始化:

T a{b};   // list initialization
T a = b; // copy initialization
T a(b); // direct initialization

int 没有区别,但其他类型肯定会有区别。例如,如果您的构造函数是 explicit,复制初始化可能会失败,而其他两个会成功。列表初始化不允许缩小转换,但对于其他两个没有问题。

关于c++ - 使用等于运算符或使用花括号为变量赋值之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com