Structs für Funktionen mit vielen default Argumenten?
-
Mich würde mal interessieren was ihr davon haltet bei Funktionen mit vielen Argumenten, von denen ein großteil default Werte hat ein struct einzusetzen das sich auf die default Werte setzt so das man immer nur das ändern muß was man möchte.
//daraus void myfunc(int a,int b=2,int c=3,ind d=4...int h=8); //wird das struct mystruct { int b...h; mystruct() { //b-h auf default werte setzen } }; void myfunc(int a,mystruct restargumente);Hier müsste man vorher ein struct des Typs erstellen, dafür müsste man abe rnichtmehr die ganzen default werte abtippen, was haltet ihr davon? Oder gibt es evtl noch eine bessere Lösung?
Was mich am Rande noch interessieren würde, wieso ist eigentlich im Standard das default Schlüsselwort nicht so überladen das man es an die stelle eines Arguments setzen kann bei dem man gern den default Wert (sofern einer da ist) benutzen will?
-
Wenn es sich nicht vermeiden lässt, finde ich das eine gute Lösung mit dem struct.
-
Xebov schrieb:
Mich würde mal interessieren was ihr davon haltet bei Funktionen mit vielen Argumenten, von denen ein großteil default Werte hat ein struct einzusetzen das sich auf die default Werte setzt so das man immer nur das ändern muß was man möchte.
Ich würd eher die vielen Argumente überdenken. Eine Funktion die viele Argumente hat entweder mehr als eine Aufgabe und sollte deshalb aufgespalten werden, oder die Argumente gehören eigentlich zu einer Datenstruktur, dann sollte die übergeben werden (z.B. ein Point3D statt drei doubles für die einzelnen Koordinaten usw.)