Wieviel Performance kostet Funktionsüberladung und kostet sie überhaupt Performance?
-
Wenn man eine rekursive Funktion hat, die sich selbst aufruft, aber 4 weitere rekursive Hilfsfunktionen braucht, die man so schreiben könnte,
daß
A) die Hilfsfunktionen einen anderen eigenen Funktionsnamen tragen
oder
daß die Hilfsfunktionen unter Ausnutzung der Funktionsüberladung und Tatsache, daß die Hilfsfunktionen andere Parameter haben den selben Funktionsnamen tragen.
Was wäre dann schneller, A oder B?
Sprich, kostet es Zeit, wenn das Programm anhand den Parametern herausfinden muß, welche Funktion aufgerufen werden soll?Beispiel:
int funcMain(){ func1(int); func2(double); func3(int, int); func4(double, double); }
vs:
[code]
int func(){
func(int);
func(double);
func(int, int);
func(double, double);
}
[/quote]Alle Funktionen sind rekursiv, aber bei letzterem Beispiel tragen sie alle den gleichen Namen. Bei ersterem Beispiel sind es Funktionen mit unterschiedlichem Namen.
-
So, jetzt sollte es klappen.
int func(){ func(int); func(double); func(int, int); func(double, double); }
-
Funktionsüberladung wird zur Compilezeit aufgelöst, also gibt es zur Laufzeit keinen unterschied.