¿Qué significa este mensaje de error?La llamada de la función sobrecargada es ambigua
error: call of overloaded ‘setval(int)’ is ambiguous
huge.cpp:18: note: candidates are: void huge::setval(unsigned int)
huge.cpp:28: note: void huge::setval(const char*)
Mi código es el siguiente:
#include <iostream>
#define BYTES 8
using namespace std ;
class huge {
private:
unsigned char data[BYTES];
public:
void setval(unsigned int);
void setval(const char *);
};
void huge::setval(unsigned int t) {
for(int i = 0; i< BYTES ; i++) {
data[i] = t;
t = t >> 1;
}
}
void huge::setval(const char *s) {
for(int i = 0; i< BYTES ; i++)
data[i] = s[i];
}
int main() {
huge p;
p.setval(0);
return 0;
}
Supongo que la respuesta a esta pregunta dependerá de la versión de la función a la que intente llamar. Podría suponer, pero claramente no puedo estar seguro de ninguna manera a menos que me lo diga. ¿Funcionaría eso con el compilador? Me pregunto ... –
@KonradRudolph El literal '0' es un valor válido para' unsigned int' y 'const char *'. –
@RyanP Sí, en general soy consciente. No tengo idea de lo que quería decir en ese entonces. –