C++对[]重载是为了方便实现数组、列表等功能,返回的是左值,所以返回的是对象生成的指针,所以返回一个引用。原型为:
-T& T::operator[](int index){};
#include <iostream>
using namespace std;
class Vector{
public:
Vector(int my_size):size(my_size){
array = new int[size];
}
~Vector(){
delete array;
}
int& operator[](int index){
return array[index];
}
private:
int size;
int *array;
};
int main()
{
Vector v(10);
int i=0;
for(i=0;i<10;i++){
v[i]= i;
}
for(i=0;i<10;i++){
cout<<v[i]<<endl;
}
return 0;
}