Eine, oder mehrere "gleiche" Funktionen?

22/10/2014 - 18:57 von Heinz-Mario Frühbeis | Report spam
Hallo!

Was macht eigentlich mehr Sinn, ist besser für ein Programm, wenn man z.
Bsp. quasi eine Funktion nimmt, die mit Parametern "geregelt" wird, oder
mehrere spezifische?

Beispiel (Pseudo-Code):
Object* ErstelleTreeMember(std::string vName){
Object *nObject;
...
return nObject;
}
Jetzt bràuchte man aber das ganze quasi nochmal, aber mit einem
zusàtzlichen Parameter:
Object* ErstelleTreeMember(std::string vName, std::string *vKey){
Object *nObject;
...
return nObject;
}
Die Object-Erstellung bliebe die gleiche, aber vKey müßte "belegt" werden.
Man könnte jetzt die Funktion so erstellen:
Object* ErstelleTreeMember(std::string vName, std::string *vKey){
Object *nObject;
if(vKey == NULL){
...
} else{
...
}
...
return nObject;
}
Wie wirkt es sich auf ein Programm aus, wenn eine Funktion vielleicht
hundert Mal fast gleichzeitig aufgerufen wird, oder vielleicht nur zehn Mal?

Mit Gruß
Heinz-Mario <der hofft, daß es nicht eine allzu doofe Frage ist> Frühbeis
 

Lesen sie die antworten

#1 Pether Hubert
22/10/2014 - 20:37 | Warnen spam
Heinz-Mario Frühbeis writes:
Was macht eigentlich mehr Sinn, ist besser für ein Programm, wenn man
z. Bsp. quasi eine Funktion nimmt, die mit Parametern "geregelt" wird,
oder mehrere spezifische?



Wird nicht jede Funktion, die Parameter hat, durch diese "geregelt"?

Beispiel (Pseudo-Code):
Object* ErstelleTreeMember(std::string vName){
...
}
Jetzt bràuchte man aber das ganze quasi nochmal, aber mit einem
zusàtzlichen Parameter:
Object* ErstelleTreeMember(std::string vName, std::string *vKey){
...
}



Wenn's eh schon C++ sein soll, könntest Du auch

Object* ErstelleTreeMember(std::string vName, std::string *vKey = 0)

nehmen, die Funktion also mit Defaultparameter erstellen, dann hast Du
zumindest den gemeinsamen Code nur einmal. Oder, wenn Du lieber zwei
Funktionen haben willst, sollte die mit dem zweiten Parameter den
gemeinsamen Code dadurch ausführen, daß sie die erste Funktion aufruft.

Es ist grundsàtzlich meistens eine gute Idee, Code nur einmal im
Programm zu haben. Stell Dir vor, Du ànderst irgendwas an dem Code, den
Du doppelt im Programm hast. Dann mußt Du das auch an zwei Stellen
àndern, und sowas geht gerne mal vergessen.

Wie wirkt es sich auf ein Programm aus, wenn eine Funktion vielleicht
hundert Mal fast gleichzeitig aufgerufen wird, oder vielleicht nur
zehn Mal?



Die Frage verstehe ich nicht ganz. Das, wonach Du gefragt hast, wirkt
sich nicht auf das Programm an sich aus, aber auf die Les- und
Wartbarkeit des Codes. Und da solltest Du nach Möglichkeit immer die
lesbarere (und wartbarere) Variante wàhlen.

Ciao

Pether
Wir rauben uns so gern den Schlaf
Und wenn wir zwei uns gegenüberstehn
Ist das wie durch ein Fernglas
In den Spiegel zu sehn

Ähnliche fragen