如何重载二维数组
定义一个数组类Array,有一个二维数组作为数据成员,分别重载下标运算符[]和函数调用运算符(),其中,函数调用运算符()用来判断二维数组的下标是否越界。我会用一维数组重载operator[];但是不会重载二维数组运算符operator[][]
#include <iostream.h>
#include <stdlib.h>
class Array
{
public:
Array();
int operator[](int index);
bool operator()(int index);
private:
int a[10];
};
Array::Array()
{
int i;
for(i=0;i<10;i++)
a[i]=0;
}
int Array::operator[](int index)
{
bool b=operator()(index);
if(b) return a[index];
else
{
cout<<"下标越界了"<<endl;
exit(1);
}
}
bool Array::operator()(int index)
{
return index>=0&&index<10?true:false;
}
int main()
{
Array obj;
cout<<obj[10]<<endl;
//cout<<obj<<endl;
return 0;
}