【问题标题】:C++ differences between () and {}() 和 {} 之间的 C++ 区别
【发布时间】:2019-09-09 16:39:33
【问题描述】:

我正在学习C++。 我见过一些人这样做:

int a = 2;

还有:

int b(2);

还有:

int c{2};

我应该使用什么? 它们之间有什么区别?

谢谢, 做'

【问题讨论】:

标签: c++


【解决方案1】:

我应该使用什么?

你可以使用它们中的任何一个。

它们之间有什么区别?

int a = 2; // A
int b(2);  // B
int c{2};  // C

A 是复制初始化。 B 和 C 是直接初始化。

C 使用花括号初始化列表,因此是直接列表初始化。 A 和 B 允许使用窄化转换进行初始化,而列表初始化只允许非窄化转换。这有时是有利的,因为它可以帮助检测无意的变窄,这是错误的根源。然而,在这种特殊情况下,可以安全地假设 2 是 int 的合适值。

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 2020-10-17
    • 2010-10-23
    • 2013-05-02
    • 1970-01-01
    • 2014-02-03
    • 2012-01-21
    • 2013-07-22
    相关资源
    最近更新 更多