




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第13章 泛型机制模板 n类模板的定义 n类模板的实例化 n模板的编译 n非类型形参和参数的默认值 n类模板的友元 n类模板作为基类 类模板的定义 n类模板允许用户为类定义一种模式,使 得类中的某些数据成员、某些成员函数 的参数或返回值能取任意数据类型。 n定义格式: template class array int low; int high; t *storage; public: array(int lh = 0, int rh = 0): low(lh), high(rh) storage = new t high - low + 1; array(const array array t array() delete storage; ; 类模板的成员函数的定义 n类模板的成员函数都是函数模板,模板参数与类模板相同 n形式: template 返回类型 类模板名:成员函数名(函数的形参表) 函数体 narray类的成员函数的格式 template 返回类型 array:函数名(形式参数表) 函数体 array的成员函数的实现 template array /防止自己复制自己 delete storage; / 归还空间 low = a.low; high = a.high; storage = new t high - low + 1; for (int i=0; i array:array(const array high = arr.high; storage = new t high - low + 1; for (int i = 0; i t array array2(10, 20); 模板类的对象的使用 n我们可以用下列语句输入array2的值: for (i=10; i class array t storagehigh - low + 1; public: t ; template t 参数的默认值 n模板参数和普通的函数参数一样,也可 以指定默认值。如果前例中的类模板 array经常被实例化为整型数组,则可在 类模板定义时指定缺省值: template class array ; n当要定义整型数组array时,就可以不指 定模板的实参: arraynext, *q; head-next=null; while (p != null) q=p-next; delete p; p=q; template void linklist:create(const elemtype node *p, *q = head; cout tmp; if (tmp = flag) break; p = new node(tmp); q-next = p; q = p; q-next = null; linklist类模板中的输出运算符重载 函数的实现 template ostream os data; q = q-next; return os; 链表类的使用 n定义: linklist intlist; 该定义产生了类模板的一个整型实例 n如果想创建这个单链表,可以调用create函数 : intlist.create(0); 该调用将输入链表中的元素值,直到输入0为止。 n要输出链表的所有元素,可以直接输出: cout class stack : public linklist public: void push(const elemtype p-next = head-next; head-next = p; bool pop(elemtype if ( p = null) return false; head-next = p-next; data = p-data; delete p; return true; ; 类模板stack的使用 n定义一个整型栈:stack st; n进栈: for (int i = 1; i 10; +i) st.push(i); n出栈: while (st.pop(i) cout i t; n执行结果: 9 8 7 6 5 4 3 2 1 小结 n本章介绍了c+中的泛型程序设计的工具 -模板。 n模板是独立于类型的蓝图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年康复科疾病康复评估与指导模拟考试卷答案及解析
- 2025年影像科医学影像学报告撰写规范考试卷答案及解析
- 中国科学院自然科学史研究所招聘科研人员(秋季招聘)笔试备考题库及答案解析
- 2025年营养学在疾病预防和治疗中的应用模拟测试答案及解析
- 2025内蒙古鄂尔多斯市伊金霍洛旗妇幼保健院婴幼儿照护服务中心招聘6人笔试模拟试题及答案解析
- 2025重庆市万州区响水镇人民政府招聘非全日制公益性岗位5人笔试参考题库附答案解析
- 2025四川南充法院招聘聘用制审判辅助人员120人笔试参考题库附答案解析
- 2026国能包神铁路集团陕西招聘岗位表(21人)笔试备考题库及答案解析
- 2025年儿科发热患儿处理规范模拟测试答案及解析
- 2025年血液科疾病实验检验技术操作模拟考试卷答案及解析
- 矩阵论智慧树知到课后章节答案2023年下哈尔滨工程大学
- 空间设计教学大纲 室内设计教学大纲(五篇)
- 促单技巧及话术大全
- 车辆司法鉴定申请书
- 塑料原料名称中英文对照表
- 二年级应用题大全800题二年级上册数学乘法应用题
- 第十四杂环化合物
- GB/T 5454-1997纺织品燃烧性能试验氧指数法
- GB/T 11186.2-1989涂膜颜色的测量方法第二部分:颜色测量
- 学校辍学学生劝返工作记录卡
- 第六讲:RCEP服务贸易与投资解读课件
评论
0/150
提交评论