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 に答える