Pracuję nad programem klasy C++ dla klasy, a mój kompilator narzeka na "niejednoznaczne" wywołanie funkcji. Podejrzewam, że tak jest, ponieważ istnieje kilka funkcji zdefiniowanych z różnymi parametrami.Jak naprawić "niejednoznaczne" wywołanie funkcji?
Jak mogę powiedzieć kompilatorowi, którego chcę? Oprócz poprawki dla konkretnego przypadku, czy istnieje ogólna zasada, taka jak typowanie, które może rozwiązać tego rodzaju problemy?
Edit:
W moim przypadku Próbowałem nazywając abs()
wewnątrz cout
oświadczenie, przechodząc w dwóch double
s.
cout << "Amount is:" << abs(amountOrdered-amountPaid);
Edit2:
jestem w tym tych trzech nagłówków:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
Edit3:
Skończyłem program bez tego kodu, ale w interesie śledzenia tego questi dalej, udało mi się odtworzyć problem. Dokładny błąd to:
Wezwanie do "abs" jest niejednoznaczne.
Kompilator oferuje trzy wersje abs
, z których każda przyjmuje inny typ danych jako parametr.
Czy mógłbyś pokazać przykład ze swojego kodu? –
To naprawdę zależy od sytuacji. Musisz napisać kod i jeśli błąd kompilatora zawiera które funkcje są kandydatami (ostatnie GCC), które również pomaga. –
Również dobre byłoby, które nagłówki są włączone. – mkb