【发布时间】:2012-08-03 22:38:26
【问题描述】:
我的情况可以总结如下:
class Test
{
Test();
int MySet[10];
};
是否可以在初始化列表中初始化MySet?
像这种初始化列表:
Test::Test() : MySet({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) {}
有没有办法在类的初始化器列表中初始化一个常量大小的成员数组?
【问题讨论】:
-
不管怎样,
Set不仅仅是指向10整数数组的指针,这里也不是static。相反,在某些情况下,数组名称Set衰减为指向数组第一个元素的指针。使用sizeof可以清楚地看到差异 - 即sizeof(Set) == 10 * sizeof(int) != sizeof(int*)。 -
@StuartGolodetz 感谢您的澄清。当我说静态时,我的意思是静态形式,它与对象/实例一起存储,而不仅仅是堆中的其他地方。当然,就我而言,这是对
static一词的严重滥用。对不起。 -
不用担心 :) 我主要是想澄清数组和指针之间的区别,以防万一出现误解。
标签: c++ arrays class constants initializer-list