Es gibt bereits ein Funktionsobjekt im std
Namespace mit dem Namen plus
. Wegen using namespace std;
wird std::plus
in den globalen Namespace eingetragen, wo auch Ihr plus()
steht. Wenn Sie versuchen, plus()
aufzurufen, kann der Compiler nicht feststellen, ob Sie auf std::plus
oder plus()
verweisen, da sie sich beide im globalen Namespace befinden.
Sie haben die folgenden Optionen:
using namespace std;
(Sie müssen dann andere Funktionen im Namensraum std
qualifizieren - z. B. std::cout
). plus()
in einen eigenen Namensraum (zB mine
) und rufen Sie sie mit mine::plus(a, b)
. ::plus()
wie vorgeschlagen auf (vorausgesetzt, Sie geben sie nicht in ihren eigenen Namensraum ein).