64,666
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
template<class T>
class Array
{
public:
Array():data(0),sz(0) { }
Array(unsigned size):data(new T[size]), sz(size) { }
virtual ~Array() { delete [] data; }
const T& operator[](const unsigned n) const
{
if(n >= sz || data == 0)
throw "Array subscript out of range";
return data[n];
}
T& operator[](const unsigned n)
{
if(n >= sz || data == 0)
throw "Array subscript out of range";
return data[n];
}
operator T*()
{
return data;
}
operator const T*() const
{
return data;
}
private:
T* data;
unsigned sz;
Array(const Array& a);
Array& operator= (const Array);
};
int main()
{
Array<int> Retry(3);
Retry[(unsigned)0] = 0;
Retry[(unsigned)1] = 1;
Retry[(unsigned)2] = 2;
cout<<Retry[(unsigned)2]<<endl;
return 0;
}