下标运算符“[ ]”一般用于在数组中标识数组元素的位置,在C/C++语言中,下标运算符“[ ]”是没有越界检查功能的。可以通过重载下标运算符“[]”实现一种更安全、功能更强的数组类
格式
下标运算符的使用方式是a[i],
第一个操作数为数组名,
重载后就为用户自定义对象,
因此C++规定重载下标运算符“[]”只能重载为类的成员函数。
#include <iostream> // 编译预处理命令
using namespace std; // 使用命名空间std
// 声明数组类模板
template <class ElemType, int size>
class Array
{
private:
ElemType elem[size]; // 存储数据元素值的C风格数组
public:
ElemType &operator[](int i) // 下标运算符"[]"只能重载为成员函数
{
if(0<=i&&i<=size-1){
return elem[i];
}
else{
cout<<"下标超过范围!"<<endl;
exit(1);
}
}
};