下标操作符 [] 通常用于访问数组元素。这个运算符符可被重载用于增强操作 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 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