Vorteil von Initialisierungslisten
-
@hbjkl: Was wolltest Du jetzt eigentlich hören? Der „Vorteil“ von Initialisierungslisten ist halt, dass es ohne sie in C++ nicht geht. Man kann argumentieren, inwiefern sie wirklich nötig sind und ob man es beim Sprachdesign anders hätte lösen können. War es das, was Du diskutieren wolltest?
Oder war Deine Frage konkret auf den Vorteil in C++ bezogen (das sollte ja jetzt beantwortet sein)?
-
Gibt es denn einen Weg von dieser zwanghaften Code duplication weg zu kommen?
class a{ public: a():klasse(8,7,6){} a(int n):klasse(8,7,6){} a(double n):klasse(8,7,6){} private: Klasse klasse; };Also sowas in der Art
class a{ public: a(){} a(int n){} a(double n){} private: Klasse klasse(8,7,6); };
-
Ist klasse immer in allen a's gleich, also ist sie Objektunabhängig ?
Wenn ja mache sie static und definiere sie einmal.BTW: Mehr Sprachexperten als Programmierer hier

-
nein, sie soll nur immer gleich initialisiert werden. (Könnte auch ein einfacher Datentyp sein).
-
Mal eine theoretische Sprache:
class Foo { int zahl = 5; Bar bar = Bar("hallo"); Foo() { } // a Foo(int z, Bar b) { zahl = z; bar = b; } // b // b) sollte das gleiche sein wie Foo(int z, Bar b) : zahl(z), bar(b) { } }Hier ist der default-Wert fuer zahl=5 und fuer bar=Bar("hallo"). Dies wird bei a) angewandt. Wieso kann man nun keinen Compiler schreiben, der sieht das man bei b) die Default-Werte eh ueberschreibt und somit die Werte in den Parametern als Default-Werte nimmt?
Aber im grunde ist das alles so egal. Ich schreibe immer Initalisierungslisten, weil ich weis das es effektiver ist in C++.
-
hbjkl schrieb:
Gibt es denn einen Weg von dieser zwanghaften Code duplication weg zu kommen?
class a{ public: a():klasse(8,7,6){} a(int n):klasse(8,7,6){} a(double n):klasse(8,7,6){} private: Klasse klasse; };Also sowas in der Art
class a{ public: a(){} a(int n){} a(double n){} private: Klasse klasse(8,7,6); };Einfach:
class a_base { friend class a; a_base() : klasse(8,7,6) {} Klasse klasse; }; class a : a_base { public: a(){} a(int n){} a(double n){} };Effektiv ergibt sich das Problem aber nicht SO oft.
-
KasF schrieb:
BTW: Mehr Sprachexperten als Programmierer hier

Das ist für mich eines der größten Probleme (und gleichzeitig einer der größten Vorteile) bei Foren: Man weiß einfach nicht, was der Gegenüber eigentlich alles kann, und welche Praxiserfahrungen er hat.
In einem anderen Forum, an dem ich mitarbeite, hatten wir früher eine Option in den Benutzerprofilen, wo der Benutzer einstellen konnte, wie er seine Fähigkeiten bewertete – war furchtbar nutzlos, das ganze, weil sich fast niemand realistisch einschätzt. Inzwischen haben wir nur noch das Fließtext-Feld, in dem jeder Nutzer etwas über sich sagen kann.
(Ich weiß, ich weiß, fürchtbar OT.)
-
Konrad Rudolph schrieb:
Das ist für mich eines der größten Probleme (und gleichzeitig einer der größten Vorteile) bei Foren: Man weiß einfach nicht, was der Gegenüber eigentlich alles kann, und welche Praxiserfahrungen er hat.
Nach einer Weile des Umgangs miteinander bekommt man aber doch zumindest ein Gefühl für die eigene und die Kompetenz der anderen. Außerdem würde ich die Praxiserfahrung - sofern du sie mit beruflicher Ausübung assoziierst - gar nicht so sehr als Kompetenzkriterium heranziehen.
-
zwutz schrieb:
...aber ein Glas kann nicht "leerer" oder "voller" als ein anderes sein, da beides ein fest definierter Zustand und kein variabler ist. ...
Das ist ja eine nette Definition ... aber Du musst in einem anderen Land leben als ich. (Vieleicht in "Elfenbeinturmien" ?
).
Also selbst mein pedantischer Deutschlehrervater hat nichts gegen "voller/leerer" einzuwenden und auch sonst niemand, den ich kenne.Anscheinend verwechseln hier einige die deutsche Sprache mit einer Programmiersprache (die eine derartige Eindeutigkeit braucht, weil Computer sie brauchen) ...
hustbaer schrieb:
rofl
...Da "optimal" ein Superlativ ist, ...Stimmt aber nicht. Ich habe auch noch keine Quelle gefunden, die (das deutsche Wort) "optimal" als Superlativ bezeichnet .. oder wovon soll das der Superlativ sein ?

Gruß,
Simon2.
-
@Simon2:
Ich denke du wirst recht haben was "optimal" und "Superlativ" angeht: syntaktisch ist "optimal" kein Superlativ.
Semantisch allerdings schon