一个很简单的考试题!多谢!
一个很简单的考试题求助!谢谢!急急急!!!
#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;
}
#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;
}