把下列各程序运行时各输出行

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:12:36
把下列各程序运行时各输出行
1、
#include<iostream.h>
template<class T>
class Array{
public:
Array(int n){elems=new T[n];nums=n;}
~Array(){delete{}Jelems;}
void SetElem(int i,T v);
T GetElem(int i);
};
template<class T>
void Arrsy<T>::SetElem(int i,T v){
if(i>=0 && i<nums)eles[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+99);
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;
答案是什么

答案是
cdefgh
3 5 7 9 下标越界-99

你把程序抄错了,我改了一下:

#include<iostream.h>

template<class T>

class Array
{
public:
int nums ;
T *Jelems ;
Array(int n){Jelems=new T[n];nums=n;}
~Array(){
delete[]Jelems;
}
void SetElem(int i,T v);
T GetElem(int i);
};

template<class T>
void Array<T>::SetElem(int i,T v)
{
if(i>=0 && i<nums)
Jelems[i]=v;
}
template<class T>
T Array<T>::GetElem(int i)
{
if(i>=0 && i<nums)
return Jelems[i];
else { cout<<"下标越界";return T(-99);}
}

void main()
{
Array<char> m(6);

for(int i=0;i<6;i++)
{
m.SetElem(i,i+99);
cout<<m.GetElem((int)i);
}
cout<<endl;
Array<int>s(4);
for(i=0;i<5;i++)