作为抽象数据类型数组的问题
#ifndef SHUZU_H#define SHUZU_H
#include <iostream>
#include <stdlib.h>
template<class T>
class Array
{
private:
T *elements; //数组
int Arraysize; //元素个数
void getArray(); //动态分配数组存储空间
public:
Array(){Arraysize=0;} //构造函数
Array(const Array<T>&A); //复制构造函数
void InputArray(T *a,int n);
~Array(){delete []elements;} //析构函数
int Length()const {return Arraysize;} //取数组长度
void Resize(int sz ); //修改数组长度
void Output()const;
};
template<class T>
void Array<T>::Output() const
{
int i=0;
for(i=0;i<10;i++)
{
cout<<elements[i];
}
}
template<class T>
void Array<T>::InputArray( T*a,int n)
{
Arraysize=n;
elements=new T[n];
T *srcptr=a;
T *destptr=elements;
while (n--) *(srcptr++)=*(destptr++);
}
template<class T>
void Array<T>::getArray()
{
elements=new T[Arraysize];
if(elements==0) cerr<<"内存分配失败!"<<endl;
}
template<class T>
void Array<T>::Resize(int sz )
{
if (sz<=0) cerr<<"数组长度非法!"endl;
Arraysize=sz;
getArray();
}
template<class T>
Array<T>::Array(const Array<T> &A)
{
int nn=A.Arraysize;
Arraysize=nn;
elements=new T[nn];
T *srcptr=A.elements;
T *destptr=elements;
while (nn--) *(srcptr++)=*(destptr++);
}
template<class T>
#endif
#include "shuzu.h"
#include <iostream>
using namespace std;
int main()
{
Array<int> arr;
int i=0,a[10];
for(i=0;i<10;i++)
cin>>a[i];
arr.Resize(10);
arr.InputArray(a,10);
arr.Output();
return 0;
}
Error 1 error C2988: unrecognizable template declaration/definition f:\mine\算法\数组\数组\主函数.cpp 3
Error 2 error C2059: syntax error : 'using' f:\mine\算法\数组\数组\主函数.cpp 3
Error 3 error C2143: syntax error : missing ';' before '{' f:\mine\算法\数组\数组\主函数.cpp 5
Error 4 error C2447: '{' : missing function header (old-style formal list?) f:\mine\算法\数组\数组\主函数.cpp 5
求解呀