Dobry !
Mam sobie taką klasę:
class simple
{
public:
char *data;
simple() : data(0) {} ;
char operator[](int index) { return data[index]; };
};
A dalej korzystam z przeładowanego operatora:
simple sim;
if(sim[5] == 'f') return 0;
i wyskakuje mi błąd: "operator+ not implemented in type 'simple' for arguments of type 'int'". Co tu ma do rzeczy 'operator+' ? I czemu gdy napiszę tak:
if(sim.operator [](5) == 'f') return 0;
wszystko się kompiluje ?
P.S.: Używam BCB 6.0
[dopisane]
wkradł się mały błąd [wstyd]
zamiast
simple sim
powinno być const simple sim
. Bez "const" wszystko chodzi elegancko... tylko czemu gdy to jest stała operator tak śmiesznie działa ?