Werte bekommen und an Funktion weitergeben
-
Die Sache ist folgende: Ich habe eine Klasse. Diese definiert einige überladene memberfunktionen, die verschiedene Grunddatentypen übernehmen und irgendwie speichern. Aber in der Reihenfolge in der sie übergeben wurden (auch die gemischte Reihenfolge, z.B.: 4, 4.4, 55.69...). Dann gibt es noch eine andere Funktion, die Die bis dato gespeicherten Werte liest und (alle) an eine andere Funktion weitergibt...
Das ganze ist noch hypothetisch, allerdings handelt es sich um einen Teil einer komplizierten Vererbungshierarchie, die aufwändig zu ändern ist...class Foo { private: //Speicher: Vector<void*> und mehrere Vektoren für grunddatentypen? // map mit ganzzahligem Schlüssel??? public: void Add(int); void Add(float); void Add(bool); //... void Use(); }; void Foo::Use() //So ungefähr soll es funktionieren { Bar( //Erwartet beliebig viele Parameter //Wie übergeb ich die Parameter? Es muss einzeln geschehen, alle der Reihe nach ); }; //Und so soll es ein zu setzen zu sein: Foo foo; foo.Add(4); foo.Add(3.55); //... foo.Use(); //Soll Bar(4,3.55) aufrufen
-
Überdenke dein Anwendungsdesign...
-
Gibt es absolut keine Lösung? (Mit einem gaaanz winzigen Hintertürchen wäre mir schon geholfen...[es ist ja nicht so, das ich nicht selber denken will..., mir fällt nur keine Lösung ein
])
-
Es gibt schon eine Lösung, die ist aber nicht ganz trivial. Du solltest devil's Aussage aber eher beherzigen. Woher willst du denn zB wissen, welcher Parameter in Bar() von welchem Typ ist?
-
Sag mir die Lösung
Bitte! (Bar erwartet eine Ellipse)
-
ness schrieb:
Sag mir die Lösung
Bitte! (Bar erwartet eine Ellipse)
Ellipse ist ganz böse, dont use it!
besides ist es mit ner ellipse nicht zu erkennen, obs ein float oder ein int ist. desweiteren führen nicht standarddatentypen zu undefiniertem verhalten.
benutz lieber template funktionen, und hak dann wert für wert nacheinander ab.
-
Mir ist das klar, ich weiß das man die Ellipse nicht benutzen soll! (Du brauchst mir keine Vorträge zu halten, ich kenne die Probleme der Ellipse.) Aber ich muss halt ein Parametersammlung an eib bereits bestehende (alte) Funktion liefern. Aber wie meinst du das mit den templates? (Ich brauche immernoch eine unbegrenzte Anzahl an Parametern [wenn ich bar selbst schreibe])