据我所知,在C++中是表单中的初始化
T x = a;名为copy-initialization和窗体中的初始化
T x(a);或
T x{a};名为direct-initialization.
(T...Type,x...variable name,a...expression)
对于类类型,我认为区别很明显(在复制初始化的情况下调用复制构造函数)。
但是,如果使用了诸如int这样的原始(标量)类型呢?因为int类型没有(复制)构造函数,因此在
int x = 5; // copy-initialization所以有什么区别吗?
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这里到底发生了什么?或者,如果涉及原始/标量类型,并且都是语法糖,是否没有区别。类似的问题对我来说并不能解释这一点。
发布于 2019-09-03 12:24:16
像这样的原始标量没有什么区别;内存位置或寄存器(取决于使用)将以相同的方式初始化。
https://stackoverflow.com/questions/57771673
复制相似问题