Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Beginner
Jun 7, 1999

Overloading the Subscript Operator the Right Way

It is customary to overload the subscript operator, [], in classes that hold a sequence of elements. Vector and String are examples of such classes. When you overload operator [], remember to define two versions thereof: a non-const version and a const one. For example:

 
class MyString
{
private:
  char * buff;
  int size;
public:
	//...
  char& operator [] (int index) { return buff[index]; } //non-const
  const char& operator [] (int index) const { return buff[index]; } //const
};

The const version of the subscript operator is called when its object itself is const:

 
void f(const MyString& str)
{
  char c = str[0]; //calls const char& operator [] (int index) const 
}
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap