求助各位高手

appleseeker 2004-11-18 03:52:40
有代码如下,帮忙填5个空格~~~~~~


#include <iostream.h>
template <class T> class Array;
template <Class T> class ArrayBody {
 friend__(1)__;
 T* tpBody;
 int iRows,iColumns,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 = true;
   if(j<0 ||j>= iColumns)
    column_error = true;
   if(row_error == true || column_ error == true)
    __(3)__;
  }
  catch(char){
   if(row_error == true)
    cerr << "行下标越界[" << iCurrentRow << "]";
   if(column_error = true)
    cerr << "列下标越界[" << j << "]";
   cout << "\n";
  }
  return tpBody[iCurrentRow * iColumns + j];
 }
 ~Arraygody(){delete[]tpBody;}
};
template <class T> class Array {
 ArrayBody<T> tBody;
 public:
  ArrayBody<T> & operator[](int i) {
   __(4)__;
   return tBody;
  }
 Array(int iRsz,int iCsz):__(5)__ { }
 };
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];  //没有越界提示
}
...全文
132 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzheng318 2004-11-18
  • 打赏
  • 举报
回复
Andy84920(你也不懂)
还差2000 还请你们多多包含! :)
御剑乐逍遥 2004-11-18
  • 打赏
  • 举报
回复
m_syb(编程浪子)的答案:
1、Array<T>
2、new T[iRsz * iCsz]
3、'e'
4、tBody.iCurrentRow = i
5、tBody(iRsz, iCsz)
是正确的。
御剑乐逍遥 2004-11-18
  • 打赏
  • 举报
回复
虽然不肯定,但是个人感觉 m_syb(编程浪子) 说的是对的!
Andy84920 2004-11-18
  • 打赏
  • 举报
回复
xuzheng318(forever C++) (老迈马甲NO.1)(学如逆水行舟,不进则退)

还差多少?成猩?
这么冲法.:)
m_syb 2004-11-18
  • 打赏
  • 举报
回复
看看这个答案对不对:
1、Array<T>
2、new T[iRsz * iCsz]
3、'e'
4、tBody.iCurrentRow = i
5、tBody(iRsz, iCsz)
xuzheng318 2004-11-18
  • 打赏
  • 举报
回复
顶了!
bulala 2004-11-18
  • 打赏
  • 举报
回复
对不起阿,我不小心提交了。一下为正解
1、class array;
2、new array();
3、throw("error")
4 tbody = this[i];
bulala 2004-11-18
  • 打赏
  • 举报
回复
1 class array
2 new T();
3 throw ("error")
4
学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。也感谢一线工人 提供了这个机会。希望大家有什么好的想法和建议都直接跟帖说出来。毕竟只有交流才能够碰撞出火花来 ^_^。 。“卖弄”也好,“吹嘘”也罢,我只是想认真的写写我这一路走来历经的总总,把其中值得注意,以及经 验的地方写出来,权当是我对自己的一个总结吧。而作为看官的你,如果看到了我的错误,还请一定指正 , 这样对我以及其它读者都有帮助,而至于你如果从中能够收获到些许,那便是我最大的欣慰了。姑妄言之 , 姑妄听之。如果有啥好的想法和建议一定要说出来。ϑ几年前,和众多初学者一样,我接触到了单片机,立 刻被其神奇的功能所吸引,从此不能自拔。很多个日夜就这样陪伴着它度过了。期间也遇到过非常多的问 题,也一度被这些问题所困惑……等到回过头来,看到自己曾经走过的路,唏嘘不已。经常混迹于论坛里 , 也看到了很多初学者发的求助帖子,看到他们走在自己曾走过的弯路上,忽然想到了自己的那段日子,心 里竟然莫名的冲动,凡此总总,我总是尽自己所能去回帖。很多时候,都想写一点什么东西出来,希望对 广大的初学者有一点点帮助。但总是不知从何处写起。今天借一线工人的台,唱一唱我的戏 一路学习过来的过程中,帮助最大之一无疑来自于网络了。很多时候,通过网络,我们都可以获取到所 需要的学习资料。但是,随着我们学习的深入,我们会慢慢发现,网络提供的东西是有限度的,好像大部 分的资料都差不多,或者说是适合大部分的初学者所需,而当我们想更进一步提高时,却发现能够获取到 的资料越来越少,相信各位也会有同感,铺天盖地的单片机资料中大部分不是流水灯就是 LED,液晶,而 且也只是仅仅作功能性的演示。于是有些人选择了放弃,或者是转移到其他兴趣上面去了,而只有少部分 人选择了继续摸索下去,结合市面上的书籍,然后在网络上锲而不舍的搜集资料,再从牛人的只言片语中 去体会,不断动手实践,慢慢的,也摸索出来了自己的一条路子。当然这个过程必然是艰辛的,而他学会 了之后也不会在网络上轻易分享自己的学习成果。如此恶性循环下去,也就不难理解为什么初级的学习资 料满天飞,而深入一点的学习资料却很少的原因了。相较于其他领域,单片机技术的封锁更加容易。尽管 已经问世了很多年了,有价值的资料还是相当的欠缺,大部分的资料都是止于入门阶段或者是简单的演示 实验。但是在实际工程应用中却是另外一回事。有能力的高手无暇或者是不愿公开自己的学习经验。 很多时候,我也很困惑,看到国外爱好者毫不保留的在网络上发布自己的作品,我忽然感觉到一丝丝的 悲哀。也许,我们真的该转变一下思路了,帮助别人,其实也是在帮助自己。啰啰嗦嗦的说了这么多,相 信大家能够明白说的是什么意思。在接下来的一段日子里,我将会结合电子工程师之家举办的主题周活动 写一点自己的想法。尽可能从实用的角度去讲述。希望能够帮助更多的初学者更上一层楼。而关于这个主 题周的最大主题我想了这样的一个名字“从单片机初学者迈向单片机工程师”。名字挺大挺响亮,给我的压 力也挺大的,但我会努力,争取使这样的一系列文章能够带给大家一点帮助,而不是看后大跌眼镜。这样 的一系列文章主要的对象是初学者,以及想从初学者更进一步提高的读者。而至于老手,以及那些牛 XX 的人,希望能够给我们这些初学者更多的一些指点哈~@_@~

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧