In C++ entscheidet nicht alleine der Name über die Eindeutigkeit einer Funktion, sondern
die
Signatur aus Funktionsname, Reihenfolge und Typen der Parameter. Dadurch ist es möglich,
mehrere Funktionen gleichen Namens, mit unterschiedlichen Parametern zu definieren.
Beispiel:
void swap (int&, int&);
void swap (double&, double&);
Der Compiler versucht ggf. Mehrdeutigkeiten aufzulösen und wirft am Ende einen Fehler.
Nach
Möglichkeit sollte man Mehrdeutigkeiten vermeiden!