我完全失望了。我上课了,我有私人结构。什么是愚蠢的问题:我不能预先初步化一些变量!
我的意思是:
我需要:
struct someStruct
{
someStruct *next = NULL;
int number;
};
我只想创建简单的动态列表,从堆中添加新元素。
我该怎么做?
struct someStruct
{
someStruct *next;
int number;
};
把
someStruct *newElement = new someStruct;
newElement.next = NULL;
每一次?我可以忘掉这一点。
请帮我。因为当我需要添加1个无用的字符串时,这不是问题。但是,如果我有50个默认变量怎么办?
答案 0 :(得分:2)
声明类成员时,无法初始化它们。相反,您需要构造函数:
struct someStruct {
someStruct(): next(NULL), number(0) {}
someStruct *next;
int number;
};
或者,对于POD (plain old data),您可以使用没有构造函数的原始类,并使用someStruct *newElement = new someStruct();
创建someStruct
。这会将成员初始化为零。
此外,C ++ 11支持in-class member initializers。