模板
来源:互联网 发布:tower im for mac 编辑:程序博客网 时间:2024/04/28 16:32
//array.h
template<class AType>
class array
{
public:
array(int size);
~array()
{delete []a;}
AType & operator[](int i);
private:
int length;
AType *a;
};
template<class AType>
array<AType>::array(int size)
{
register int i;
length=size;
a=new AType[size];
if(!a)
{
cout<<"can't allocate array./n";
exit(0);
}
for(i=0;i<size;i++)
a[i]=0;
}
template<class AType>
AType & array<AType>::operator [](int i)
{
if(i<0||i>length-1)
{
cout<<"/nIndex value of";
cout<<i<<"is out-of-bounds./n";
}
return a[i];
}
//template
#include<iostream>
using namespace std;
#include"array.h"
void main()
{
array<int>a1(10);
array<double>a2(5);
cout<<"Integer array:";
int i;
for(i=0;i<10;i++)
a1[i]=i+1;
for(i=0;i<10;i++)
cout<<a1[i]<<" ";
cout<<endl;
cout<<"Double array:";
cout.precision(4);
for(i=0;i<5;i++)
a2[i]=(double)(i+1)*3.14;
for(i=0;i<5;i++)
cout<<a2[i]<<" ";
cout<<endl;
a1[20]=15;
a2[20]=25.5;
getchar();
}