一个运算符重载返回类型为引用的疑惑
这是一段运算符[]重载的程序,它的返回值为引用类型,我不明白的是在执行ob[2]=25;时,为什么没有调用运算符的重载??这个引用的返回值除了可以在=号左边被赋值外,它还有什么优点呢??请指教!!#include<iostream>
using namespace std;
const int size=3;
class atype{
int a[size];
public:
atype(){register int i;
for(i=0;i<size;i++)a[i]=i;
}
int &operator[](int i){return a[i];}
};
int main()
{
atype ob;
cout<<ob[2];
cout<<"";
ob[2]=25;
cout<<ob[2];
return 0;
}
using namespace std;
const int size=3;
class atype{
int a[size];
public:
atype(){register int i;
for(i=0;i<size;i++)a[i]=i;
}
int &operator[](int i){return a[i];}
};
int main()
{
atype ob;
cout<<ob[2];
cout<<"";
ob[2]=25;
cout<<ob[2];
return 0;
}
[此贴子已经被作者于2006-5-23 23:12:12编辑过]