信管网试题内容
信管网 导航

试卷名称:2004年上半年软件设计师考试下午真题试题(案例分析)

考试年份:2004年上半年

试题来源:《2004年上半年软件设计师考试下午真题试题(案例分析)》在线考试

试题内容

试题六
11、[程序6]
#include<ioStream.h>
template<class T>class Array;
template<class T>class ArrayBody{
friend  (1)  ;
T* tpBody;
int iRows,iCurrentRow;
ArrayBOdy(int iRsz,int iCsz){
tpBody=  (2)  ;
iRows=iRsz,iColumns=iCsz;iCurrentRow=-1;
}
public:
T& operator[](int j) {
bool row_error,column_error;
row_error=column_error=false;
try{
if(iCurrentRow<0||iCurrentRow≥iRows)
row_error=;
if(j<0|| j≥iColumns
column_error=;
if(row_error==true || column_error==true)
(3)  ;
}
eatch(char) {
if(row error==true)
cerr<<“行下标越界[“<<iCurrentRow<<”]”;
if(column error==true)
cerr<<“列下标越界[“<<j<<”]”;
cout<<“\n”;
}
return tpBody[iCurrentRow * iColumns+j];
}
~ArrayBody(){delere[]tpBody;}
};
template<class T>class Array {
ArrayBody<T> tBody;
public:
ArrayBody<T> & operator[](int i){
(4)  ;
return tBody;
};


void main()
{
Array<int> a1(10,20);
Array<double> a2(3,5);
int b1;
double b2;
b1=a1[-5][10];         / * 有越界提示:行下标越界[-5] * /
b1=a1[10][15];         / * 有越界提示:行下标越界[10] * /
b1=a1[1][4];           / * 没有越界提示 * /
b2=a2[2][6];           / * 有越界提示:列下标越界[6] * /
b2=a2[10][20];         / * 有越界提示:行下标越界[10]列下标越界[20] * /
b2=a2[1][4];           / * 没有越界提示 * /
}

参考答案:暂时没有答案(仅供参考) 收藏

【解析】

普通会员无法查看试题解析。[开通试题解析服务]