📄 603b.cpp
字号:
/*
603b.cpp
a Array class,using operator[] overload
demo a safe array !!自定义数组的安全性
demo 设计上界和下界
*/
#include <iostream.h>
#include <stdlib.h>
class Array
{
long * p;
int size,down;
public:
Array(int n){ p = new long[n]; size = n;}
Array(int dd,int uu)
{
if (uu>dd)
{
size = uu - dd + 1;
down = dd;
}
else
{
size = 1;
down = dd;
}
p = new long[size];
}
~Array() {delete [] p;}
long& operator [] (int i)
{
if (i<down || i>(down+size-1) )
{
cerr<<"Array index is over bound!\n";
exit(1); // #include <stdlib.h>
}
return p[i-down];
}
};
main()
{
const DOWN = -5,UP=5;
int c=1;
Array a(DOWN,UP);
int i;
for (i = DOWN; i <=UP; i++) a[i] = 10*i;
for (i = DOWN; i <=UP; i++ , c++)
{
cout << "a[" << i << "]=" << a[i] << " ";
if (!(c%5)) cout << endl;
}
cout << endl;
a[UP+1] = 9999;
return 0;
}
/*
a[-5]=-50 a[-4]=-40 a[-3]=-30 a[-2]=-20 a[-1]=-10
a[0]=0 a[1]=10 a[2]=20 a[3]=30 a[4]=40
a[5]=50
Array index is over bound!
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -