第十四周项目61-数组类模板

来源:互联网 发布:iphone x抢购软件 编辑:程序博客网 时间:2024/05/21 12:49
  1. /* 
  2. *Copyright (c) 2015,烟台大学计算机学院 
  3. *All rights reserved. 
  4. *文件名称:text.cpp 
  5. *作者:李德彪
  6. *完成日期:2015年6月1日 
  7. *版本号:v1.0 
  8. * 
  9. *问题描述:在数组类的基础上,将之改造为类模板,以使数组中可以存储各种类型的数据 
  10. *输入描述: 无 
  11. *程序输出:数组类中存储的各种类型的数据 
  12. */  
  13. #include <iostream>  
  14.   
  15. using namespace std;  
  16. template <class T>  //数组类模板定义  
  17. class Array  
  18. {  
  19. public:  
  20.         Array(T *l,int s)  
  21.         {  
  22.             size=s;  
  23.             list=new T[size];  
  24.             for(int i=0;i<size;i++)  
  25.                 list[i]=l[i];  
  26.         }  
  27.         Array(const Array<T>&A)  
  28.         {  
  29.             size=A.size;  
  30.             list=new T[size];  
  31.             for(int i=0;i<size;i++)  
  32.             {  
  33.                 list[i]=A.list[i];  
  34.             }  
  35.         }  
  36.         ~Array(){delete[] list;}  
  37.         void Show()  
  38.         {  
  39.             for(int i=0;i<size;i++)  
  40.             cout<<list[i]<<" ";  
  41.             cout<<endl;  
  42.         }  
  43.         T& operator[](int i)  
  44.         {  
  45.             return list[i];  
  46.         }  
  47.   
  48. private:  
  49.     T* list;        //用于存放动态分配的数组内存首地址  
  50.     int size;       //数组大小(元素个数)  
  51. };  
  52. int main()  
  53. {  
  54.     int a[5]={1,2,3,4,5};  
  55.     double b[5]={1.1,2.2,3.3,4.4,5.5};  
  56.     Array<int> a1(a,5);  
  57.     a1.Show();  
  58.     Array<double> a2(b,5);  
  59.     a2.Show();  
  60.     return 0;  
  61. }  
0 0
原创粉丝点击