Sto lavorando a un programma C++ per la classe e il mio compilatore si sta lamentando di una chiamata di funzione "ambigua". Sospetto che ciò avvenga perché esistono diverse funzioni definite con parametri diversi.Come posso risolvere una chiamata di funzione "ambigua"?
Come posso dire al compilatore quale voglio? Oltre a una correzione specifica del caso, esiste una regola generale, come la tipizzazione, che potrebbe risolvere questo tipo di problemi?
Edit:
Nel mio caso, ho provato a chiamare abs()
all'interno di una dichiarazione cout
, passando in due double
s.
cout << "Amount is:" << abs(amountOrdered-amountPaid);
Edit2:
sto compresi questi tre intestazioni:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
Edit3:
ho finito il programma senza questo codice, ma nell'interesse di seguire con questi argomenti su, ho riprodotto il problema. L'errore letterale è:
La chiamata a "add" è ambigua.
Il compilatore offre tre versioni di abs
, ognuna con un diverso tipo di dati come parametro.
Mostreresti un esempio dal tuo codice? –
Dipende davvero dalla situazione. È necessario inserire il codice e se l'errore del compilatore include quali funzioni sono candidate (i GCC recenti) possono essere d'aiuto. –
Anche le intestazioni sono buone. – mkb