Ich mache C/C++ - Programmierung (meistens C++) und ich bin in der Notwendigkeit, Code zu faktorisieren, der wirklich doppelt so ist, außer jedes Vorkommen von "links" wird ersetzt durch " Recht". Sobald der Code fertig ist, muss ich wissen, ob es die "linke" oder "rechte" Version ist, die ausgeführt wird, aber das ist alles, beide werden eine Zahl zurückgeben, aus der ich Sinn machen kann (einmal kombiniert mit der linken oder rechten Information) .C++: Factorize-Code ohne eine Million Argumente zu übergeben
In diesem Setup muss jede Änderung zweimal durchgeführt werden, und das ist ärgerlich.
So könnte ich einfach faktorisieren, indem Sie links/rechts durch "andere" ersetzen und die faktorisierte Funktion zweimal aufrufen, jedes Mal wissend, wenn ich es für "links" oder für "rechts" nenne.
Jetzt, da wir diesen Teil des Codes erreichen, gibt es bereits eine Million Variablen (Cursor, IDs, Arrays gefüllt, etc ...). Wenn ich also den Links-/Rechts-Code faktorisieren wollte, würde ich die Funktion brauchen, um eine Unmenge von Argumenten zu haben, und das würde ziemlich hässlich aussehen.
Ich möchte auch nicht meine C++ - Klasse mit Attributen überladen, die nur in diesem Fall verwendet werden.
Irgendwelche Vorschläge, um hier reibungslos zu faktorisieren?
int arrayRight[many], arrayLeft[many], cursor;
while(1)
{
rightThing = arrayRight[cursor];
// Process with RightThing assigned
// ...
// ...
// ...
leftThing = arrayLeft[cursor]
// Process with RightThing assigned
// ...
// ...
// ...
cursor++;
}
Sie können Gruppe Ihre Argumente in struct/class und dann nur jene Instanz übergeben. – Jarod42
Dachte darüber nach, aber immer noch ein Streit um eine Struktur nur für diese einmal zu definieren –