CHAPTER2-36.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER2-36.cpp
  2. #include<iostream.h>
  3. class Err
  4. {
  5.     int err_number;
  6. public:
  7. Err(int x):err_number(x) {cout<<"A error array ID number has been found."<<endl;}
  8. int get_err_number(){return err_number;}
  9. };
  10. template<class T>
  11. class Array
  12. {
  13.     int i;
  14. T *ar;
  15. public:
  16.    Array(int c):i(c){ar=new T[c];}
  17.    void init(int n,T x){ar[n]=x;}
  18.    T& operator[](int n) {if(n>=i)throw Err(n);return ar[n];}
  19. };
  20. void main()
  21. {
  22.   Array<int> array(5);
  23.   cout<<"Please input every element's value:"<<endl;
  24.   try{
  25.        for(int i=0;i<5;i++) { cout<<"No."<<i+1<<':';cin>>array[i];}
  26.       cout<<array[5];  //测试数组越界从而导致异常处理的产生
  27.    }
  28.   catch(Err& ex) {cout<<"This value is "<<ex.get_err_number()<<endl;}
  29. }