可以用类定义数组,其实数组的个数就是对象实例化的个数,如下:
#include <iostream>
using namespace std;
class Array{
public:
Array(int length)
{
this->This_length = length;
this->This_array = new int[This_length];
}
void SetArray(int value, int index)
{
this->This_array[index] = value;
}
Array(Array &oop)
{
this->This_length = oop.This_length;
for (int i = 0; i < This_length; i++)
{
this->This_array[i] = oop.This_array[i];
}
}
int operator[](int index)
{
if (index>This_length || index < 0)
{
cout << "数组越界" << endl;
return this->This_array[0];
}
return this->This_array[index];
}
private:
int This_length;
int *This_array;
};
int main(void)
{
Array oop(10);
for (int j = 0; j < 10; j++)
{
oop.SetArray(j+1, j);
}
for (int i = 0; i < 10; i++)
{
cout << oop[i] << endl;
}
system("pause");
return 0;
}
在该实例中,定义十个对象,如果不进行数组下标重载,在输出时就必须重新定义一个成员函数:
int GetArray(int index)
{
return this->This_array[index];
}
在主函数中电泳该成员函数,才能访问其内部成员,但是经过数组操作符重载就可想操作数组那样操作对象了
for (int i = 0; i < 10; i++)
{
cout << oop[i] << endl;
}