Copyright © tutorialspoint.com

# Subscripting [] operator overloading in C++

The subscript operator [] is normally used to access array elements. This operator can be overloaded to enhance the existing functionality of C++ arrays.

Following example explain how a subscript operator [] can be overloaded.

    #include <iostream>
    using namespace std;
    const int SIZE = 10;

    class safearay
    {
       private:
          int arr[SIZE];
       public:
          safearay()
          {
             register int i;
             for(i = 0; i < SIZE; i++)
             {
               arr[i] = i;
             }
          }
          int &operator[](int i)
          {
              if( i > SIZE )
              {
                  cout << "Index out of bounds" <<endl;
                  // return first element.
                  return arr[0];
              }
              return arr[i];
          }
    };
    int main()
    {
       safearay A;

       cout << "Value of A[2] : " << A[2] <<endl;
       cout << "Value of A[5] : " << A[5]<<endl;
       cout << "Value of A[12] : " << A[12]<<endl;

       return 0;
    }

When the above code is compiled and executed, it produces following result:

    Value of A[2] : 2
    Value of A[5] : 5
    Index out of bounds
    Value of A[12] : 0

Copyright © tutorialspoint.com