阅读: C ++中的运算符重载及其规则。
在此程序中,我们将重载下标运算符([])重载。
看程序:
#include <iostream>
#include <stdlib.h>
using namespace std;
const int MAX=5;
class MyArray
{
//私有数据成员
private:
int Arr[MAX];
int size; //大小始终小于或等于MAX-
public:
//渗透构造函数
MyArray(int s, int v)
{
if(s>MAX)
{
cout<<endl<<"This is beyond maximum size";
exit(1);
}
size = s;
//初始化所有数组元素
for(int i=0;i<size;i++)
Arr[i] = v;
}
int& operator[](int i)
{
if( (i<0) || (i>=size) )
{
cout<<endl<<"Error: Array out of bound";
exit(1);
}
return Arr[i];
}
};
int main(){
int i=0;
//数组的大小是3-
MyArray arr(3,0);
//给数组元素赋值
for(i=0;i<3;i++)
arr[i] = i*20;
cout<<"Array elements are:"<<endl;
//打印数组元素的值
for(i=0;i<3;i++)
{
int VAL = arr[i];
cout<<VAL<<endl;
}
return 0;
}输出结果
Array elements are: 0 20 40