首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中的初始化

C++中的初始化
EN

Stack Overflow用户
提问于 2021-08-01 09:22:09
回答 1查看 56关注 0票数 1

在C++中直接初始化和统一初始化有什么区别?

写作有什么区别?

代码语言:javascript
复制
int a{5}; // Uniform

代码语言:javascript
复制
int a(5); // Direct
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 09:45:51

在这个特殊的例子中,由于选择的类型和值没有任何不同:int5

在其他一些情况下,初始化意味着什么取决于我们是使用{}还是()。当我们使用括号时,我们说我们提供的值将用于构造对象,并进行计算。当我们使用大括号时,我们说(如果可能的话)我们希望列表初始化对象;如果无法列出初始化对象,则将通过其他方法初始化对象。

例如。

代码语言:javascript
复制
// a has one element, string "foo"
vector<string> a{"foo"};
// error, cannot construct a vector from a string literal
vector<string> b("foo");
// c has 21 default initialized elements
vector<string> c{21};
// d has 21 elements with value "foo"
vector<string> d{21, "foo"};

对于内置类型(如int ),{}将具有另一个函数:

代码语言:javascript
复制
double d = 3.14;
int i = 0;
i = {d};
// error: narrowing conversion of ‘d’ from ‘double’ to ‘int’

有关更多信息,您可以查看cppreference.com -初始化

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68609060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档