L’utilizzo di float restituisce l’errore “call to overloaded function is ambiguous”

Sto sovraccaricando la funzione add() , ma quando ho usato il tipo di dati float sta mostrando un errore. Tuttavia, quando lo cambio a double , funziona bene. Perché il float causa l’errore?

Il codice è:

 #include  using namespace std; class students{ private: int i; float f; public: void add(int b){ i=b; cout << "First Int: " << i; } void add(float c){ f=c; cout << "Second Int: " << f; } }; int main(){ students obj; obj.add(9); obj.add(5.5); } 

Errori:

 In function 'int main()': [Error] call of overloaded 'add(double)' is ambiguous [Note] candidates are: [Note] void students::add(int) [Note] void students::add(float)