Ukoliko recimo imam sledece:
class Nesto
{
//...
public:
//...
int operator[](int index);
};
odnosno overload operatora [] ...
i u kodu ovakvu konstrukciju
Nesto* nesto = new Nesto();
//...
int i = Nesto->operator[](22);
//...
delete nesto;
Da li je moguce izraz Nesto->operator[](22); zapisati na neki jednostavniji nacin?
Odnosno da nije u pitanju pointer na instancu klase, pisalo bi se Nesto[22] a ovako?
Kompajler prijavljuje greske na:
Nesto->[](22);
Nesto->[22];
i naravno
Nesto[22] nije to sto nama treba ;) (odnosno meni)
jedino sto mogu da smislim pametno bi zapravo bilo (mada mi i to nije elegantno)
(*Nesto)[22]; // da li su potrebne zagrade u ovom slucaju?
Odnosno cesto u svojim nekim konstrukcijama stizem do situacije kada moram da napisem nesto poput:
StatusBar->Panels->operator [](1)->Text = "Bla bla"; // ...
a recimo alternative su:
StatusBar->(*Panels)[1]->Text = "Bla bla"; // ...
Odnosno da li je to eevivalentno sledecem:
StatusBar->*Panels[1]->Text = "Bla bla"; //...
(Sa ovim poslednjim bih mogao da zivim ... :) )
Prisecam se nesto operatora .* i ->* pa ko rekoh jel moze ovako opusteno ili moram sa jos gomilom zagrada?