Ich debugge einen Code, der im Wesentlichen mit diesem identisch ist:
struct Foo { int a; int b; };
struct Bar { Bar() {} Foo foo{0}; };
Wenn ich eine Instanz von mache Bar
, scheint es wie beides a
und b
wird auf Null initialisiert. Ist das garantiert? Wo finde ich das in der Spezifikation?
struct Foo { int a{}; int b{}; };
Beachten Sie die zusätzlichen Klammern nach den Variablennamen. dann erhalten Sie immer initialisierte Werte. Wenn Sie mit anderen Werten und mit definiertem Verhalten beginnen müssen, müssen Sie einen Ctor wie für jede andere Klasse schreiben