Witajcie,
mam kolejny problem z moim programem, a mianowicie chodzi o wywołanie przeciążonych operatorów. Muszę przeciążyć kilka operatorów i mam problem z ich wywołaniem, przykładowo, jeśli przeciążam operator [], to powinienem go wywoływać na zasadzie obiekt_, lecz takie wywołanie u mnie nie działa. W jego miejsce postanowiłem to na około wywołać, czyli obiekt->operator i to już działa._
Problem mam z operatorem [] oraz (). Poniżej kody źródłowe operatorów:
string userGroup::operator[] (int n)
{
string val;
val = restaurantUsers[n]->login;
cout<
return val;
}
bool userGroup::operator()(string login, string passwd)
{
if (groupCounter)
{
for (int i=0;i
{
if (restaurantUsers[i]->compareCredentials(login,passwd))
{
return true;
}
}return false;
}else return false;
}
I wywołanie:
void restaurant::test()
{
admin->operator[](0);
if (admin->operator()("Administrator","admin")) cout<<"It works!";
//admin[0]; -> nie działa, dlaczego?
}
admin jest obiektem klasy userGroup (userGroup *admin;) zadeklarowanym wewnątrz innej klasy. Co zrobić, aby te operatory poprawnie działały?