在数组类的基础上,将之改造为类模板,以使数组中可以存储各种类型的数据

来源:互联网 发布:xls导入sqlserver 编辑:程序博客网 时间:2024/04/29 13:15
<pre name="code" class="cpp">/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:main.cpp*作    者:郭辉*完成时间:2016年6月8日。*问题描述:在数组类的基础上,将之改造为类模板,以使数组中可以存储各种类型的数据*输入描述:无。*程序输出:该数组和相加后的数组。*/#include<iostream>using namespace std;template <class T>  //数组类模板定义class Array{private:    T* list;        //用于存放动态分配的数组内存首地址    int size;       //数组大小(元素个数)public:Array(int size=50);//~Array();Array(T a[],int si);Array(Array<T> &a); void show();Array operator+(Array &a);};template <class T>Array<T>::Array(int si){size=si;list=new T[size];}template <class T>Array<T>::Array(T a[],int si){size=si;list=new T[size];for(int i=0;i<size;i++)list[i]=a[i];}template <class T>Array<T>::Array(Array<T> &a){size=a.size;list=new T[size];for(int i=0;i<size;i++)list[i]=a.list[i];}template <class T>void Array<T>::show(){for(int i=0;i<size;i++)cout<<list[i]<<" ";}/*template <class T>Array<T>::~Array(){delete[]list;}*/template <class T>Array<T> Array<T>::operator+(Array &a){  Array total(size);    for (int i = 0; i < size; i++)        total.list[i] = list[i]+a.list[i];    return total; }int main(){int a[8]={1,2,3,4,5,6,7,8};int b[8]={1,2,3,4,5,6,7,8};Array<int> array1(a,8);array1.show();cout<<endl;Array<int>c(array1);c.show();Array<int> array2(b,8),array3;array3=array1+array2;cout<<endl;array3.show();}


运行结果:
<img src="http://img.blog.csdn.net/20160608202223763" alt="" />

0 0