首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ 0x中的统一初始化,何时使用()而不是{}?

在 C++ 0x 中,统一初始化允许使用圆括号 () 和花括号 {} 来初始化变量。但是,在某些情况下,只能使用圆括号 (),而不能使用花括号 {}。

具体来说,当初始化的对象是一个非聚合类型,并且该类型没有提供初始化列表时,只能使用圆括号 ()。这是因为圆括号 () 可以用来表示值的列表,而花括号 {} 则用于表示初始化列表。

例如,考虑一个类型为 std::vector<int> 的变量,由于该类型没有提供初始化列表,因此只能使用圆括号 () 进行初始化:

代码语言:cpp
复制
std::vector<int> v(3, 4); // 使用圆括号 () 初始化

而如果该类型提供了初始化列表,则可以使用花括号 {} 进行初始化:

代码语言:cpp
复制
std::vector<int> v{3, 4, 5}; // 使用花括号 {} 初始化

需要注意的是,当使用花括号 {} 初始化时,如果初始化列表中只有一个元素,则需要在该元素后面加上逗号,以避免与圆括号 () 的初始化方式混淆:

代码语言:cpp
复制
std::vector<int> v{3,}; // 使用花括号 {} 初始化,注意逗号

总之,在 C++ 0x 中,统一初始化允许使用圆括号 () 和花括号 {} 来初始化变量,但在某些情况下,只能使用圆括号 (),而不能使用花括号 {}。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券