Estoy trabajando en un programa C++ para clase, y mi compilador se queja de una llamada a función "ambigua". Sospecho que esto se debe a que hay varias funciones definidas con diferentes parámetros.¿Cómo arreglo una llamada de función "ambigua"?
¿Cómo puedo decirle al compilador cuál quiero? Aparte de un arreglo específico de caso, ¿existe una regla general, como el encasillado, que podría resolver este tipo de problemas?
Editar:
En mi caso, he intentado llamar abs()
interior de una declaración cout
, pasando en dos double
s.
cout << "Amount is:" << abs(amountOrdered-amountPaid);
Edit2:
Estoy incluyendo estos tres encabezados:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
Edit3:
he terminado el programa sin este código, pero con el interés de seguir adelante con esta questi en adelante, he reproducido el problema. El error al pie de la letra es:
Llamar a 'abs' es ambiguo.
El compilador ofrece tres versiones de abs
, cada una de las cuales toma un tipo de datos diferente como parámetro.
¿Podría mostrar un ejemplo de su código? –
Realmente depende de la situación. Necesitas publicar el código y si el error del compilador incluye qué funciones son candidatas (lo hacen los GCC recientes) también ayuda. –
También sería bueno qué encabezados están incluidos. – mkb