Sunray
Erfahrenes Mitglied
Wenn ich eine Methode mit zwei Überladungen definiere, etwa so:
Dann hätten wir da noch eine dritte Funktion, die diese Überladungen in Anspruch nimmt:
Jetzt ist zur Übersetzungszeit ja nicht klar, welchen Datentyp input haben wird und somit kann auch nicht eindeutig festgestellt werden, welche der beiden Überladungen denn jetzt hier gilt. Das würde ja heissen, dass die Überladung erst zur Laufzeit aufgelöst werden könnte, wie bei virtuellen Methoden, was dann aber mit einer Geschwindigkeitseinbusse verbunden wäre...
Wie funktioniert das jetzt so bei verschiedenen Sprachen? (C/++, C#, Java, VB.NET?)
Ein Compiler könnte zum Beispiel sagen, dass der input vom Typ ClassA ist und deshalb die erste Überladung in allen Fällen gewählt werden würde...
Code:
void doSomething(ClassA arg)
{
// ...
}
doSomething(SubclassOfA arg)
{
// ...
}
Code:
void procedure(ClassA input)
{
// ...
doSomething(input);
// ...
}
Wie funktioniert das jetzt so bei verschiedenen Sprachen? (C/++, C#, Java, VB.NET?)
Ein Compiler könnte zum Beispiel sagen, dass der input vom Typ ClassA ist und deshalb die erste Überladung in allen Fällen gewählt werden würde...