云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 面向对象程序设计习题

面向对象程序设计习题

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 11:53:38

.

/***************** 定义模板类QueueItem ************/ template class QueueItem { public:

QueueItem(const Type & elem):item(elem) {} QueueItem() {} private: Type item;

QueueItem * nextItem; friend class Queue; };

/***************** 定义模板类Queue ************/ template class Queue { public:

Queue():front( NULL), ____(A)_____ {} ~Queue(); Type remove();

void add(const Type &);

bool is_empty() const { return ____(B)______ ; private:

QueueItem *front; QueueItem *back;

word教育资料

} .

};

//模板类Queue的函数成员remove()的实现 //从队列头取出一个节点,并返回该节点的值 template

Type Queue::remove() {

QueueItem *pFront; //指向头节点的临时指针 Type retVal; //返回值 ______(C)_________; retVal = front->item; front = front->nextItem; delete pFront; return retVal; }

//模板类Queue的函数成员add()的实现 template

void Queue::add(const Type & newItem) {

QueueItem *pNew = new QueueItem; pNew->item = newItem; ______(D)____________; if (front == NULL) front = back = pNew; else

word教育资料

.

{

back->nextItem = pNew; _____(E)__________; } } template Queue::~Queue() {

QueueItem *p = front, *q; while(p != NULL) {

q = p->nextItem; delete p; p = q; } }

问题1: 程序中有几处填空,将它们完成。 (A)back(NULL)

(B)front == NULL 或 back == NULL (C)pFront = front (D)pNew->nextItem = NULL (E)back = pNew

word教育资料

.

问题2:()题中程序第1,2行为什么要说明一下类模板Queue?如果没有这两行语句,程序还正确吗?

答:不正确。因为在类QueueItem模板类的定义中用到了模板类Queue,而此时Queue还没有定义,所以要先声明一下,告诉编译程序Queue是一个模板类,它将在程序的其他地方定义。如果没有这个说明,编译程序就不知道标识符Queue代表什么样的含义了。

问题3:程序第22,23行各有一个const,它们各自表示什么含义: 答:第22行的const修饰的是函数的参数,表示在这个函数体中不能改它所修饰的参数所对应的实际参数的值。

第23行的const修饰的是模板类Queue的成员函数is_empty(),它表示在函数is_empty()的函数体中不能改变任何数据成员的值。

问题4:程序中模板类Queue的析构函数主要做了什么事情?为什么要这么做?

答:析构函数中主要是释放链表中存放的各个节点的空间。因为Queue对象在其生存期间可能加入了很多节点,从堆中申请了一些内存空间,这些空间应该随着对象的消亡而释放掉,所以需要在析构函数中来释放这些空间。

问题5:下面的程序使用了queue.h文件中定义的类模板,说明程序中哪些定义队列对象的语句是不正确的,哪些是正确的。 #include “queue.h” void main() {

Queue q1; // 1 Queue q2; // 2 Queue q3(100); // 3

word教育资料

搜索更多关于: 面向对象程序设计习题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

. /***************** 定义模板类QueueItem ************/ template class QueueItem { public: QueueItem(const Type & elem):item(elem) {} QueueItem() {} private: Type item; QueueItem * nextItem; friend class Queue; }; /***************** 定义模板类Queue ************/ template class Queue { public: Queue():front( NULL), ____(A)_____ {} ~Queue(); Type remove();

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com