vendredi 23 mars 2018

error when trying to run an overloaded function with float parameters.

I am trying to create a simple (absolute) function in c++, I have created two functions with the same name one that takes an integer and returns an integer and one that takes a float and returns a float but every time I try to run the code I receive this error:

"error: call of overloaded 'absolute(double)' is ambiguous"

I tried changing the input parameters of the second function so that it takes a double and returns a float and the code ran perfectly, I'd like to know why the code won't run when the parameters and return type are both set to float, thank you.

#include <iostream>
#include <fstream>

using namespace std;

int absolute(int x){
if (x<0){
    x=-x;
}
    return x;
}
float absolute (float x)
{
    if (x<0){
        x=-x;
    }
    return x;
}





int main( )
{
    cout << absolute(3.5);

}

Aucun commentaire:

Enregistrer un commentaire