阅读: 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