ch21_3.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //**********************
  2. //**    ch21_3.cpp    **
  3. //**********************
  4. #include <iostream.h>
  5. #include <string.h>
  6. class String{
  7. public:
  8.   String(char*, int);
  9.   class Range{        //异常类1
  10.   public:
  11.     Range(int j):index(j){}
  12.     int index;
  13.   };
  14.   class Size{};       //异常类2
  15.   char& operator[](int k)
  16.   {
  17.     if(0<=k && k<len)
  18.       return p[k];
  19.     throw Range(k);
  20.   }
  21. private:
  22.   char* p;
  23.   int len;
  24.   static int max;
  25. };
  26. int String::max = 20;
  27. String::String(char* str, int si)
  28. {
  29.   if(si<0 || max<si)
  30.     throw Size();
  31.   p=new char[si];
  32.   strncpy(p, str, si);
  33.   len=si;
  34. }
  35. void g(String& str)
  36. {
  37.   int num=10;
  38.   for(int n=0; n<num; n++)
  39.     cout <<str[n];
  40.   cout <<endl;
  41. }
  42. void f()
  43. {
  44.   //代码区1