模板

来源:互联网 发布: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();
}

原创粉丝点击