0

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

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

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

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

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

每次?我可以忘记这件事。
请帮我。因为当我需要添加 1 个无用的字符串时,这不是问题。但是如果我有 50 个默认变量呢?

4

1 回答 1

2

声明类成员时不能初始化它们。相反,您需要一个构造函数

struct someStruct {
    someStruct(): next(NULL), number(0) {}
    someStruct *next;
    int number;
};

或者,对于POD (plain old data),您可以使用没有构造函数的原始类并someStruct *newElement = new someStruct();用于创建someStruct. 这会将成员初始化为零。

此外,C++11 支持类内成员初始化器

于 2013-08-10T14:14:35.200 回答