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

<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="https://img-blog.csdn.net/20160608202223763" alt="" />

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值