我发现初始化有一个奇怪的地方,我正试图解决这个问题。我知道可以通过 using 将数组初始化为所有默认值T[size] {}
,这在大多数情况下似乎都有效,但在由类成员初始化时似乎不起作用,如下所示:
class Hashtable {
int *table;
int size;
public:
Hashtable() : size { 10 }, table { new int[size]{} } {
for (int index = 0; index != size; ++index) { // size = 10
cout << table[index] << endl; // this displays an uninitialized array??
}
}
};
如果我尝试table
使用文字进行初始化,如 中table { new int[10] {} }
,则数组中的所有项目都设置为默认值 ( 0
)。这是为什么?