#include
using namespace std;
template
class Array {
private:
T * list ; //数组指针
int size ; //数组长度
public:
Array(int size) ;//构造函数
Array (const Array< T> &a ) ;//赋值构造函数
Array(){}//构造函数
~Array(){}//析构函数
int getSize()const; //获得数组大小
void reSize(int i) ; //修改数组大小
T & operator [] (int i) const; // []的重载
Array
operator T *();
operator const T *()const ;
};
//构造函数
template
Array
assert (size >= 0);
this->size =size ;
list =new T [size] ;
}
//(深)复制构造函数
template
Array
size =a.size ;
list = new T(size) ;
for(int i=0;i
}
//获得数组大小
template
int Array
return this->size ;
}
//修改数组大小
template
void Array
assert (i>=0) ;
if(i ==size)
return ;
T * newList =new T[size];
int n =(i
for(int i=0;i
delete[] list ;
list =newList ;
size =i ;
}
//对操作符[]的重载
template
T & Array
assert(0<=i &&i<=size);
return list[i];
}
//对操作符 =的重载
template
Array
if(&a != this){
if(size
size =a.size ;
list =new T[size];
for(int i=0;i
}
else {
for(int i=0;i
}
}
}
//重载指针转换运算符 让Array类的对象名转换成T指针类型的指针
template
Array
return list ;//就是这里有问题 为什么函数没有返回类型呢
}
template
Array
return list ;
}
void main (){
Array
cout<
a[1]=1;
cout<<*a<
写了一个类似于vector数组的模版