C++ 下标运算符[]重载

  • 下标运算符[]重载

    下标运算符[]通常用于访问数组元素。可以重载该运算符以增强C++数组的现有功能。下面的示例说明如何重载下标运算符[]。
    
    #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;
    }
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Value of A[2] : 2
    Value of A[5] : 5
    Index out of bounds
    Value of A[12] : 0