首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原语(标量)类型的差异复制初始化和直接初始化

原语(标量)类型的差异复制初始化和直接初始化
EN

Stack Overflow用户
提问于 2019-09-03 12:21:47
回答 1查看 126关注 0票数 2

据我所知,在C++中是表单中的初始化

代码语言:javascript
复制
T x = a;

名为copy-initialization和窗体中的初始化

代码语言:javascript
复制
T x(a);

代码语言:javascript
复制
T x{a};

名为direct-initialization.

(T...Type,x...variable name,a...expression)

对于类类型,我认为区别很明显(在复制初始化的情况下调用复制构造函数)。

但是,如果使用了诸如int这样的原始(标量)类型呢?因为int类型没有(复制)构造函数,因此在

代码语言:javascript
复制
int x = 5; // copy-initialization

所以有什么区别吗?

代码语言:javascript
复制
int x = 5; // copy-initialization of variable x
int x = {5}; // copy-initialization of variable x
int x(5); // direct-initialization of variable x
int x{5}; // direct-initialization of variable x

这里到底发生了什么?或者,如果涉及原始/标量类型,并且都是语法糖,是否没有区别。类似的问题对我来说并不能解释这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-03 12:24:16

像这样的原始标量没有什么区别;内存位置或寄存器(取决于使用)将以相同的方式初始化。

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

https://stackoverflow.com/questions/57771673

复制
相关文章

相似问题

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