【发布时间】:2018-05-14 09:07:45
【问题描述】:
假设我有这个结构
struct CAddition {
int x;
int y;
int c;
int z[3];
int result() {
return x + y;
}
CAddition();
~CAddition();
};
CAddition::CAddition()
:x(0)
,y(2)
,z()
,c(result())
{
}
现在在构造函数中,我初始化了 z ,它是结构 ,z() 的一个数组成员,它输出带有零的初始化值,现在当我尝试其他语法时
,z{}
和
,z{0,0,0}
它们都输出相同的结果 除了上述两种方法之外,还有没有更有效的方法在构造函数中初始化数组?这三种方法有什么区别吗?我检查了不同的网站进行初始化,他们使用了这两种方法
【问题讨论】:
-
用 z[...] 设置值
-
您在问是否有“更好”的方法。为此,您需要为您定义什么构成“好/坏”。 如何其他方法应该更好,列出的那些缺少什么等?
-
更好我的意思是更高效,因为数组是内存分配
-
“数组是内存分配” - 我不明白你的意思。您有一个具有自动存储持续时间的数组,那么您担心什么分配?
-
@KillzoneKid 再次阅读问题,先生!这是我的问题,如果我能回答我不会发布它
标签: c++ arrays initializer-list