You'd make this one; const TString& operator[]( const char* key ) const; and then create a new one; TString& operator[]( const char* key ); On Fri, 26 Apr 2002, Ashley Cambrell wrote: > Hi Rooters, > > Just a simple question. I'm still learning so I'm sorry if this is one > of those "What's an int?" questions. I have a class the inherits from > TMap and I want to emulate associative arrays. > > I have this: > > TString operator[](const char* key) > { > TObjString *tosKey = new TObjString(key); > TString value; > > if( this->TMap::GetValue(tosKey) ) > value = ((TObjString > *)(this->TMap::GetValue(tosKey)))->String(); > > delete tosKey; > > return value; > } > root [1] THTTPData td; > root [2] td.Add(new TObjString("bob"), new TObjString("smith")); > root [3] cout << td["bob"] << endl; > smith > root [4] > > which works fine, but I'd like to also be able to do > > td["jane"] = "anderson"; > > Is it possible? (add another operator overload? but then how does C++ > tell the difference between the two) > > Thanks for your patience :-) > > Ashley Cambrell > > -- /------------------------------------+-------------------------\ |Stephen J. Gowdy | SLAC, MailStop 34, | |http://www.slac.stanford.edu/~gowdy/ | 2575 Sand Hill Road, | |http://calendar.yahoo.com/gowdy | Menlo Park CA 94025, USA | |EMail: gowdy@slac.stanford.edu | Tel: +1 650 926 3144 | \------------------------------------+-------------------------/
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:51 MET