我完全失望了。我上课,那里有私人结构。愚蠢的问题是什么:我只是无法预先初始化一些变量!
我的意思是:
我需要:

struct someStruct
    {
        someStruct *next = NULL;
        int number;
    };


我只想创建简单的动态列表,从堆中添加新元素。
那我该怎么办?

struct someStruct
    {
        someStruct *next;
        int number;
    };




someStruct *newElement = new someStruct;
newElement.next = NULL;


每次?我可以忘记这一点。

请帮我。因为当我需要添加1个无用的字符串时这不是问题。但是,如果我有50个默认变量怎么办?

最佳答案

声明类成员时,不能对其进行初始化。相反,您需要一个构造函数:

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

10-05 23:04