C++ 重载下标运算符 []
下标操作符 []
通常用于访问数组元素
C++ 允许重载下标运算符 []
用于增强操作 C++ 数组的功能
重载下标运算符 []
最重要的作用就是设置一个哨兵,防止数组访问越界
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> const int SIZE = 10; class Fibo { private: // 偷懒,防止把 SIZE 设置的过小 int arr[SIZE+3]; public: Fibo() { arr[0] = 1; arr[1] = 1; int i = 2; for(; i < SIZE; i++) { arr[i] = arr[i-2] + arr[i-1]; } } int& operator[](int i) { if( i > SIZE ) { std::cout << "索引超过最大值\n"; // 返回第一个元素 return arr[0]; } return arr[i]; } }; int main() { Fibo fb; std::cout << "fb[1] 的值为 : " << fb[1] << std::endl; std::cout << "fb[7] 的值为 : " << fb[7] << std::endl; std::cout << "fb[13] 的值为 : " << fb[13] << std::endl; return 0; }
编译和运行以上范例,输出结果如下
fb[1] 的值为 : 1 fb[7] 的值为 : 21 fb[13] 的值为 : 索引超过最大值 1