#ifndef __ARRAY_H__
#define __ARRAY_H__ 1
#include <iostream.h>
extern "C" { void exit(int); }
template <class T>
class Array {
private:
int FSize; //数组的大小
T *alist; //指向数组的第一个元素的指针
//为数组申请内存空间
void Allocate() {
alist = new T[FSize];
if (!alist) {
cerr << "Memory Allocation Error!" << endl;
exit(1);
}
}
public:
//构造函数
Array(int sz = 50) {
if (sz <= 0) sz = 1;
FSize = sz;
Allocate();
}
//复制构造函数:在声明数组时复制动态数组x
Array(const Array<T> &x) {
FSize = x.FSize;
Allocate();
for (int i=0; i < FSize; i++)
alist[i] = x.alist[i];
}
//析构函数