Initialisierung von Eigenschaften bei Deklaration statt den Konstruktor zu benutzen?



  • Warum benutzt man eigentlich den Konstruktor, um Eigenschaften(Variablen) einer Klasse zu initialisieren. Das könnte man doch schon bei der Definition machen.



  • Weil im Standard steht dass man es so zu machen hat.



  • Einfache Antwort: Weil es bisher nicht vorgesehen war, den Membern direkt bei der Deklaration einen Wert mitzugeben (geht bisher nur für statische Konstanten, soll in C++0x afair auch etwas erweitert worden sein).

    Ansonsten: Eine Klasse hat häufig mehrere Konstruktoren - und je nachdem welcher davon aufgerufen wird, bekommen die Member idR andere Werte übergeben (die noch dazu abhängen können von den Konstruktor-Parametern).



  • Das ist natuerlich rein subjektiv, aber irgendwie finde ich es leichter lesbar, wenn sich saemtliche Initialisierungen und was man sonst noch so macht im Konstruktor (oder darueber bei Initialisierungslisten) befinden, anstatt immer zwischen Deklaration und Konstruktorimplementierung hin und herwechseln zu muessen, wenn man da mal Informationen braucht.


Anmelden zum Antworten