⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 603b.cpp

📁 C++实训教程
💻 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 + -