一个很简单的考试题!多谢!

一个很简单的考试题求助!谢谢!急急急!!!
#include   <iostream.h>
//模板类
template <class   T>
class   Array
{
public:
Array(int   n){elems=new   T[n];nums=n;}
~Array(){delete   []elems;}
void   SetElem(int   i,T   v);
T   GetElem(int   i);
private:
T   *   elems;int   nums;
};
template <class   T>
void   Array <T> ::SetElem(int   ,   T   v)
{
if(i   > =   0   &&   i   <   nums)elems[i]=v;
}
template <class   T>
T   Array <T> ::GetElem(int   i)
{
if(i   > =   0   &&   i   <   nums)   return   elems[i];
else   {cout < < "下标越界 ";return   T(-99);}
}
void   main()
{
Array <char>   m(6);
for(int   i=0;i <6;i++)
{
m.SetElem(i,i+ 'B ');
cout < <m.GetElem(i);
}
cout < <endl;
Array <int> s(4);
for(i=0;i <5;i++)
{s.SetElem(i,i*2   +   3);cout < <s.GetElem(i) < < "   ";}
cout < <endl;
}
我运行了一下提示
error   C2065:   'i '   :   undeclared   identifier
。。\。。。\1.cpp(7)   :   while   compiling   class-template   member   function   'void   __thiscall   Array <char> ::SetElem(int,char) '
这个错误,请问如果正常的话他应该输出什么结果?或者应该怎么把它改的能用了!?谢谢了   !!


------解决方案--------------------
template <class T>
void Array <T> ::SetElem(int (这里漏写了 i), T v)
{
if(i > = 0 && i < nums)elems[i]=v;
}