[ vlaiv @ 28.12.2006. 18:06 ] @
Jedno pitanje: Ukoliko recimo imam sledece: Code: class Nesto { //... public: //... int operator[](int index); }; odnosno overload operatora [] ... i u kodu ovakvu konstrukciju Code: 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: Code: StatusBar->Panels->operator [](1)->Text = "Bla bla"; // ... a recimo alternative su: Code: StatusBar->(*Panels)[1]->Text = "Bla bla"; // ... Odnosno da li je to eevivalentno sledecem: Code: 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? |