注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

数组的重载 14  

2014-05-21 10:46:12|  分类: C++作业  李 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include<iostream>
using namespace std;

template<typename T>
class CArray
{
private:
 T *data; // 数据区首地址
 int size; // 数组元素个数
public:
 CArray(int n=100)
 {
  data=new int [n];
  for(int i=0;i<n;i++)
  {
    data[i]=NULL;
    }
  size=n;
 }//构造函数
 CArray(const CArray &v)
 {
  size=v.size;
  data=new int [v.size];
  int i;
  for(i=0;i<v.size;i++)
  {
   data[i]=v.data[i];
  }
 }//拷贝构造函数
 ~CArray() { delete []data; } //析构函数
 void copy(const CArray &v)
 {
  if(&v==this)
  {
   return;
  }
  if(data!=NULL)
  {
   delete []data;
  }
  size=v.size;
  data=new int [v.size];
  for(int i=0;i<v.size;i++)
  {
   data[i]=v.data[i];
  }
 }//数组复制
 T &operator[](int i)
 {
  return data[i];
 }//为CArray类重载[]运算符
    void show()
 {
  for(int i=0;i<size;i++)
  {
     cout<<data[i]<<" ";
  }
  cout<<endl;
 }//输出数组元素
};


//T是类型参数,补充完成各成员函数的定义,主函数设计如下:
int main()
{
CArray<int> a(10),b(a),c;
int i;
for(i=0; i<10; i++) a[i]=1000+i; //重载的[]
a.show(); //输出数组a中的每个元素
b.show();
c.copy(a); //将a复制给c
c.show();
return 0;
}
 


  评论这张
 
阅读(13)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017