`
hutjsk
  • 浏览: 42277 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

第五题

 
阅读更多

第五题
2010年07月07日
  课程设计题目、要求:
  设计一个通用数组类(主要针对数值型数据),设计相关成员以完成对数组的常用操作(如元素的添加、删除、访问、查找及数组排序等),并对>>、>的重载。还有排序。
  运行结果与分析:
  运行结果:
  1 2 3 4 5 6 7 8 9 0   (注:创建数组类aa,赋值0 到9,把第一个删了,就从1,到9了。)
  0 0 1 3 5 6 7 8 9 99(注:把aa赋值给bb,然后bb做了修改后排序,用cout>aa)
  3 4 5 6 9 1 2 3 5 6 (注:输出aa)
  越界了,小弟弟!请按任意键继续. . . (注:有越界提示的)
  总结(收获与体会):
  再次学习了一下运算符重载,> 重载要设置友元类。
  参考文献:无
  源程序:在Dev C++中运行!!!!在V C++6.0运行会出现这样的错误提示:error C2593: 'operator
  using namespace std;
  class IntArray
  {    
  public:
  int *data;
  int _size;
  friend istream &operator >>(istream &,IntArray&);
  friend ostream & operator new int[_size];
  }
  ~IntArray()                                            //析构
  {
  delete []data;
  }
  int &operator[](int i)                                 //查找,修改和添加,因为返回引用
  {
  if(i_size-1)                                 //越界检查
  {
  coutdelete []data;
  system("pause");
  exit(2);
  }
  return data;
  }
  int size()const
  {
  return _size;
  }
  void _delete(int i)                                    //删除下表所在元素
  {
  if(i_size-1)                                 //越界检查
  {
  coutdelete []data;
  system("pause");
  exit(2);
  }
  for(int k=i;koperator=(IntArray &n)                    //重载=
  {
  int i=0;
  int k=0;
  if(_size!=n._size)
  {
  coutdelete []data;
  delete []n.data ;
  system("pause");
  exit(2);
  }
  for(int j=0;jdata[j]) k=j;
  }
  if(k!=i)
  {
  int t=data;
  data=data[k];
  data[k]=t;
  }
  }
  }
  };
  istream & operator>>(istream &is,IntArray &n)
  {
  int i=0;
  while(i>n.data;
  i++;
  }
  return is;
  }
  ostream & operator >aa;
  cout<<aa;
  bb._delete(10);
  system("pause");
  return 1;
  }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics