Der Fehler weist normalerweise darauf hin, dass mehr als eine Überladung für die Funktion log10
vorliegt und dass keine von ihnen besser als die anderen für diesen bestimmten Aufruf ist. Beispielsweise könnten die Überladungen float
und double
: 100
ein int
sein, die in beide konvertiert werden können und die Konvertierungen sind äquivalent, sodass der Compiler nicht bestimmen kann, was am besten ist Option ist.
Sie können die Konvertierung explizit in eine der Überladungen erzwingen:
%Vor% Die allgemeine Frage ist, wenn Ihr Compiler über einen Aufruf von log10
das
"mehr als eine Instanz der überladenen Funktion entspricht der Argumentenliste"
bedeutet es, wie
mehr als eine Instanz
von log10
entspricht Ihren Argumenten
?
Tut es!
Das ist was die Fehlermeldung bedeutet!
Sie müssen es nur langsam und sorgfältig lesen, dann können Sie es verstehen.
Also, wie viele Instanzen gibt es dann log10
?
Um das herauszufinden,
Zum Beispiel könnten die Dokumente, die Sie haben, aufgelistet werden
%Vor%Hier können Sie also überprüfen, ob der Compiler richtig ist.
Passt die erste Instanz zu Ihrem Argument?
Ja!
Passt die zweite Instanz zu Ihrem Argument?
Ja!
Entspricht die dritte Instanz Ihrem Argument?
Auch ja!
Sie müssen also ein Argument verwenden, das eine bestimmte Instanz besser macht.
Sie können beispielsweise ein Argument vom Typ double
verwenden. Dann wird für die Instanz, die double
Argument benötigt, keine Konvertierung benötigt. Und diese Instanz ist dann die bessere Übereinstimmung!
Siehe, es funktioniert wirklich
lesen Sie die Fehlermeldung, langsam und sorgfältig ,
finde heraus, was es bedeutet, und
Überprüfen Sie die Dokumentation .
Das tun diejenigen, die dir hier antworten.
Und du KANN das selbst machen! Yay!
Tags und Links c++ visual-studio-2010