devxlogo

Overloading the Subscript Operator the Right Way

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 }
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist