程序填空题:A Fill in the blanks
```
#include
using namespace std;
class IndexError{};
template @@[](2)
class ARRAY
{
size_t m_size;
T *m_ptr;
public:
ARRAY(size_t size) : m_size(size)
{
m_ptr = new T[size];
memset(m_ptr, 0, size*sizeof(int));
}
~ARRAY()
{
delete[] m_ptr;
}
T& at(int index);
};
template
@@[T&ARRAY](2)::at(int index)
{
if(index<0||@@[index>=m_size](2))
{
@@[throw](2) IndexError();
}
return m_ptr[index];
}
int main()
{
ARRAY a(50);
int i;
cin >> i;
@@[try](2)
{
for(int j=0;j a.at(i) = j;
}
catch(IndexError e)
{
return 0;
}
return 0;
}
```
答案:
第1空:
第2空:T&ARRAY
第3空:index>=m_size
第4空:throw
第5空:try
#include
using namespace std;
class IndexError{};
template @@[
class ARRAY
{
size_t m_size;
T *m_ptr;
public:
ARRAY(size_t size) : m_size(size)
{
m_ptr = new T[size];
memset(m_ptr, 0, size*sizeof(int));
}
~ARRAY()
{
delete[] m_ptr;
}
T& at(int index);
};
template
@@[T&ARRAY
{
if(index<0||@@[index>=m_size](2))
{
@@[throw](2) IndexError();
}
return m_ptr[index];
}
int main()
{
ARRAY
int i;
cin >> i;
@@[try](2)
{
for(int j=0;j a.at(i) = j;
}
catch(IndexError e)
{
return 0;
}
return 0;
}
```
答案:
第1空:
第2空:T&ARRAY
第3空:index>=m_size
第4空:throw
第5空:try