Warum können wir Klassenmitglieder nicht bei ihrer Deklaration initialisieren?

Frage ich mich, ob es einen Grund gibt, warum können wir nicht initialisieren Mitglieder auf Ihre Erklärung.

class Foo
{
    int Bar = 42; //this is invalid
};

Als ein äquivalent der Verwendung von Konstruktor-Initialisierung-Listen.

class Foo
{
    int Bar;
public:
    Foo() : Bar(42) {}
}

Mein persönliches Verständnis ist, dass das obige Beispiel ist viel mehr Ausdruck und gewollt. Außerdem ist dies eine kürzere syntax. Und ich sehe keine Möglichkeit der Verwechslung mit anderen sprachlichen Elementen.

Gibt es eine offizielle Aufklärung über diese?

InformationsquelleAutor der Frage danijar | 2013-03-16

Schreibe einen Kommentar