C++ => Ambiguous call to overloaded function

c1t1z3n

Power Member
boas,

tou aqui a fazer um trabalho em c++ para uma cadeia, e isto começou a levantar este erro estranho..
tenho a seguinte classe:

class item
{
public:

item(string id_, string datatype_, int periodo_=1, string headerfile_="");
item(const item& it);

void set_id(string id_);
void set_datatype(string datatype_);
void set_periodo(int periodo_);
void set_headerfile(string headerfile_);

string get_id();
string get_datatype();
int get_periodo();
string get_headerfile();

item& operator=(const item& var);
item operator*();
virtual ~item();



e no main chamo a funçao item do seguinte modo:
item var3("string1", "string2");

e aparece-me aquele erro...


o original tinha mais construtores para a classe item, mas comentei-os e agora removi-os mesmo por causa dos erros de ambiguidade, de qualquer modo, funcionam todos direitinho, so quando chamo a funçao com 2 argumentos apenas é que vai tudo abaixo...

agradecia ajuda,

obrigado
 
não vejo aí nesse código um construtor com 2 parâmetros, será disso?

Disso não é..

Se tiveres construtores com 4 parametros, em que dois deles teem valores por defeito, podes fazer a chamada passando apenas os parametros que não teem esses mesmos valores...

Tambem nao estou a ver do que possa ser... :\
 
provavelmente tens aí um costructor que também recebe 2 arrays de chars como argumentos.
item var3( (string)"string1", (string)"string2" );
isso deve resolver o problema, se bem que não fica muito bonito :p
 
Back
Topo