Hallo, Wann sollte man Felder einer Klasse über eine Initialisierungsliste initialisieren und wann in den geschweiften Klammern des Konstruktors?
mo schrieb: > Wann sollte man Felder einer Klasse über eine Initialisierungsliste > initialisieren Immer. > und wann in den geschweiften Klammern des Konstruktors? Dort kann man sie nicht mehr initialisieren, sondern nur noch Werte zuweisen. Das macht man, wenn die Berechnung des Werts in der Initialisierungsliste nicht möglich ist oder zu unübersichtlich wäre. Beispielsweise wenn erst noch Funktionsaufrufe, temporäre Objekte, Fehlerbehandlung etc. nötig ist, bevor man den Wert kennt.
mi schrieb: > Das macht man, wenn die Berechnung des Werts in der > Initialisierungsliste nicht möglich ist oder zu unübersichtlich wäre. > Beispielsweise wenn erst noch Funktionsaufrufe, temporäre Objekte, > Fehlerbehandlung etc. nötig ist, bevor man den Wert kennt. Auch dann ist es häufig sinnvoller den Teil in eine eigene Funktion auszulagern und den Rückgabewert in der Initialisierungsliste des Konstruktors zu benutzen. Bei allem was nach der Initialisierungsliste im Konstruktor passiert muss man sich explizit selbst um Exceptionsicherheit und ähnliches Gedanken machen.
Ab c++11 sind Variablen doch auch im header bei der deklaration initialisierbar .... also auf einen definierten Startwert setzbar. Ist das einer initialisierung in einer Initialisierungsliste vorzuziehen?
Beitrag #5137393 wurde von einem Moderator gelöscht.
Beitrag #5137507 wurde von einem Moderator gelöscht.
Beitrag #5137579 wurde von einem Moderator gelöscht.
Wenn ihr fertig seit, euch das Leben zur Hölle zu machen, geht doch bitte auf meine Fragen ein. Es gibt im Leben junge, erfahrene und alte auf allen Bereichen.Deswegen läuft im Fernsehen immer das gleiche nur mit anderen Sprechern und Schauspielern und anderen Einstellungen. Ich fürchte in den Schulen bringen sie euch viel bei nur nicht das Wesentliche. Manieren, Respekt, Demut. Die Initialisierung bei der Deklaration ist wohl auch möglich. Beim Bilden der Instanz kann durch die Übergabe von Konstruktorparameter das Objekt individuell initialisiert werden. Wie ich das verstehe entweder durch eine Initialisierungsliste oder in den geschweiften Klammern des Konstruktors. Bei diesen beiden Möglichkeiten gibt es hinsichtlich Ergebnis gemeinsames aber auch Unterschiede.
Beitrag #5137738 wurde von einem Moderator gelöscht.
Beitrag #5137781 wurde von einem Moderator gelöscht.
Beitrag #5137836 wurde von einem Moderator gelöscht.
Beitrag #5137916 wurde von einem Moderator gelöscht.
Beitrag #5137932 wurde von einem Moderator gelöscht.
Beitrag #5137964 wurde von einem Moderator gelöscht.
Beitrag #5137974 wurde vom Autor gelöscht.
Beitrag #5137978 wurde von einem Moderator gelöscht.
Beitrag #5137983 wurde von einem Moderator gelöscht.
Beitrag #5138072 wurde von einem Moderator gelöscht.
Beitrag #5138349 wurde von einem Moderator gelöscht.
Beitrag #5138516 wurde von einem Moderator gelöscht.
Beitrag #5139156 wurde von einem Moderator gelöscht.
Beitrag #5139980 wurde von einem Moderator gelöscht.
Beitrag #5140096 wurde von einem Moderator gelöscht.
Beitrag #5140237 wurde von einem Moderator gelöscht.
Beitrag #5140378 wurde von einem Moderator gelöscht.
Beitrag #5140398 wurde von einem Moderator gelöscht.
Beitrag #5140403 wurde von einem Moderator gelöscht.
Beitrag #5140405 wurde von einem Moderator gelöscht.
Beitrag #5140440 wurde von einem Moderator gelöscht.
Beitrag #5140601 wurde von einem Moderator gelöscht.
Beitrag #5142596 wurde von einem Moderator gelöscht.
Beitrag #5143770 wurde von einem Moderator gelöscht.
Beitrag #5144964 wurde von einem Moderator gelöscht.
Beitrag #5144995 wurde von einem Moderator gelöscht.
Beitrag #5145001 wurde von einem Moderator gelöscht.
Beitrag #5145229 wurde von einem Moderator gelöscht.
Beitrag #5145937 wurde von einem Moderator gelöscht.
Beitrag #5145963 wurde von einem Moderator gelöscht.
Beitrag #5145974 wurde von einem Moderator gelöscht.
Beitrag #5148069 wurde von einem Moderator gelöscht.
Beitrag #5149297 wurde von einem Moderator gelöscht.
Beitrag #5149361 wurde von einem Moderator gelöscht.
Beitrag #5149382 wurde von einem Moderator gelöscht.
Beitrag #5149417 wurde von einem Moderator gelöscht.
Beitrag #5153243 wurde von einem Moderator gelöscht.
Beitrag #5153369 wurde von einem Moderator gelöscht.
Beitrag #5153415 wurde von einem Moderator gelöscht.
Beitrag #5153670 wurde von einem Moderator gelöscht.
Beitrag #5167776 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.