一、代码
#include <iostream>
using namespace std;
//
class Err
{
public:
Err(int errno) : m_errno(errno)
{
cout<<"A error array ID has been found."<<endl;
}
int get_errno()
{
return m_errno;
}
private:
int m_errno;
};
//
template<class T>
class Array
{
public:
Array(int count) : m_count(count)
{
m_arr = new T[m_count];
}
void init(int n, T value)
{
m_arr[n] = value;
}
T& operator[] (int n)
{
if (n >= m_count)
throw Err(n);
return m_arr[n];
}
private:
int m_count;
T* m_arr;
};
int main(int argc, char* argv[])
{
Array<int> arr(5);
arr.init(0, 10);
arr.init(1, 20);
arr.init(2, 30);
arr.init(3, 40);
arr.init(4, 50);
try
{
for (int i=0; i<=5; i++)
{
cout<<"NO."<<i+1<<":"<<arr[i]<<endl;
}
}
catch(Err& err)
{
cout<<"The value is "<<err.get_errno()<<endl;
}
return 0;
}
二、输出结果