Sobrecarga de funciones y flotación en C++

Aunque el polimorfismo es un fenómeno ampliamente útil en C++, a veces puede ser bastante complicado. Por ejemplo, considere el siguiente fragmento de código:

#include<iostream>
using namespace std;
void test(float s,float t)
{
    cout << "Function with float called ";
}
void test(int s, int t)
{
    cout << "Function with int called ";
}
int main()
{
    test(3.5, 5.6);
    return 0;
}

Puede parecer que la llamada a la prueba de función en main() dará como resultado la salida «Función con llamada flotante», pero el código da el siguiente error:

In function 'int main()':
13:13: error: call of overloaded 'test(double, double)' is ambiguous
 test(3.5,5.6);

Es un hecho bien conocido en la sobrecarga de funciones que el compilador decide qué función debe invocarse entre las funciones sobrecargadas. Si el compilador no puede elegir una función entre dos o más funciones sobrecargadas, la situación es – » Ambigüedad en la sobrecarga de funciones».

    Rectificando el error: simplemente podemos decirle al compilador que el literal es flotante y NO doble proporcionando el sufijo f .

    Mira el siguiente código:

    #include<iostream>
    using namespace std;
    void test(float s,float t)
    {
        cout << "Function with float called ";
    }
    void test(int s,int t)
    {
        cout << "Function with int called ";
    }
    int main()
    {
        test(3.5f, 5.6f); // Added suffix "f" to both values to 
                         // tell compiler, it's a float value
        return 0;
    }
    

    Producción:

    Function with float called

    Este artículo es una contribución de Aakash Sachdeva. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

    Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

    Publicación traducida automáticamente

    Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *