typedef template<class T>
class Array
{
public:
Array(int len)
{
pData=new T[len];
nLength=len;
nDataLength=0;
}
Array()
{
pData=NULL;
nLength=0;
nDataLength=0;
}
~Array
()
{
if(pData!=NULL)
{
delete [] pData;
}
}
T operator[ ](int n)
{
if(n>=0&&n<nDataLength)
{
return pData[n];
}
}
void PrintWholeArray(const char* b="\n")
{
for(int a=0;a<nDataLength;a++)
{
cout<<pData[a]<<b;
}
cout<<endl;
}
void operator<<(T val)
{
if(nDataLength>=(nLength-1))
{
int nNewLen=nLength+sizeof(T);
T *p=new T[nNewLen];
for(int a=0;a<nDataLength;a++)
p[a]=pData[a];
delete [] pData;
nLength=nNewLen;
pData=p;
}
pData[nDataLength]=val;
nDataLength++;
}
private:
T *pData;
int nLength;
int nDataLength;
}array;