下标运算符“[ ]”一般用于在数组中标识数组元素的位置,在C/C++语言中,下标运算符“[ ]”是没有越界检查功能的。可以通过重载下标运算符“[]”实现一种更安全、功能更强的数组类

格式

下标运算符的使用方式是a[i],
第一个操作数为数组名,
重载后就为用户自定义对象,
因此C++规定重载下标运算符“[]”只能重载为类的成员函数。

  1. #include <iostream> // 编译预处理命令
  2. using namespace std; // 使用命名空间std
  3. // 声明数组类模板
  4. template <class ElemType, int size>
  5. class Array
  6. {
  7. private:
  8. ElemType elem[size]; // 存储数据元素值的C风格数组
  9. public:
  10. ElemType &operator[](int i) // 下标运算符"[]"只能重载为成员函数
  11. {
  12. if(0<=i&&i<=size-1){
  13. return elem[i];
  14. }
  15. else{
  16. cout<<"下标超过范围!"<<endl;
  17. exit(1);
  18. }
  19. }
  20. };