第一范文网 - 专业文章范例文档资料分享平台

面向对象程序设计习题

来源:用户分享 时间:2025/12/7 2:29:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

/***************** 定义模板类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教育资料

搜索更多关于: 面向对象程序设计习题 的文档
面向对象程序设计习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3guly1lvde4bptb11x4w7g2499iozz00ml1_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top