网站大量收购独家精品文档,联系QQ:2885784924

maocpp06第6章模板与异常处理.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
maocpp06第6章模板与异常处理

C++面向对象 程序设计 第 6 章 第6章 模板与异常处理 6.1 模板的概念 6.2 函数模板与模板函数 函数模板和模板函数的关系 6.3 类模板与模板类 6.4 异常处理 6.5 应用举例 templatetypename T struct quenode { T nodedata; quenode *next; }; 这里用类模板的形式定义了队列链表的一个结点的构造,struct也可改为class。 也用类模板的形式定义了队列类,其中4个数据成员,10个成员函数: template typename T class queue { protected: //保护段 ① int quesize; //定义队列长度 ② quenodeT *head; //定义队列列头 ③ quenodeT *tail; //定义队列列尾 ④ bool allocateerror; ① queue copy (queue q); //队列拷贝函数 public: ② queue(); //构造函数 ③ queue(queue q) { head=NULL; tail=NULL; copy(q); } //构造函数,建q队列 ④ ~queue() { clearque(); } //析构函数 ⑤ bool getallocateerror() { return allocateerror; } ⑥ void push(T ); //将结点插入队尾 ⑦ bool pop(T ); //从队头取结点 ⑧ bool isempty() { return (quesize==0)? true: false ; } //判断队列是否为空 ⑨ void clearque(); //清空队列 ⑩ queue operator= (queue q) { copy(q); return *this; } //重载赋值运算符 }; 其中: 黑色的函数名③④⑤⑧⑩已在类内完成定义,红色的函数名①②⑥⑦⑨以模板函数的形式在下面定义: ② templateclass T queueT::queue() //定义构造函数 { quesize=0; allocateerror=false; head=NULL; tail=NULL; } ① templateclass T queueT queueT::copy(queueT que) //将队列que复制给当前队列对象 { quenodeT *p, *q, *r; if (head) clearque(); quesize=que.quesize; //传递队列长度 allocateerror=false; head=NULL; tail=NULL; if (!que.head) return *this; //若队列为空,则返回 head=new quenodeT; //为队列头结点分配存储空间 if (!head) //若分配失败,则返回 { allocateerror=true; return *this; } head-nodedata=que.head-nodedata; //将que队列头结点值赋给当前队列头结点 head-next=NUL

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档