泛型机制模板义

上传人:ap****ve 文档编号:115986655 上传时间:2019-11-15 格式:PPT 页数:42 大小:281.50KB
返回 下载 相关 举报
泛型机制模板义_第1页
第1页 / 共42页
泛型机制模板义_第2页
第2页 / 共42页
泛型机制模板义_第3页
第3页 / 共42页
泛型机制模板义_第4页
第4页 / 共42页
泛型机制模板义_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《泛型机制模板义》由会员分享,可在线阅读,更多相关《泛型机制模板义(42页珍藏版)》请在金锄头文库上搜索。

1、程序设计 cs.sjtu 2011.9 程序设计 - 1 第第1313章章 泛型机制泛型机制模板模板 v类模板的定义 v类模板的实例化 v模板的编译 v非类型形参和参数的默认值 v类模板的友元 v类模板作为基类 程序设计 cs.sjtu 2011.9 程序设计 - 2 类模板的定义类模板的定义 v类模板允许用户为类定义一种模式,使 得类中的某些数据成员、某些成员函数 的参数或返回值能取任意数据类型。 v定义格式: template next, *q; head-next=NULL; while (p != NULL) q=p-next; delete p; p=q; 程序设计 cs.sjtu

2、2011.9 程序设计 - 34 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; 程序设计 cs.sjtu 2011.9 程序设计 - 35 linkList linkList类模板中的输出运算符重类模板中的输出运算符重 载函数的实现载函数的实现 template ostream os next; return os; 程序设计 cs.sjtu

3、 2011.9 程序设计 - 36 链表类的使用链表类的使用 v定义: linkList intList; 该定义产生了类模板的一个整型实例 v如果想创建这个单链表,可以调用create函数 : intList.create(0); 该调用将输入链表中的元素值,直到输入0为止。 v要输出链表的所有元素,可以直接输出: cout intList; 程序设计 cs.sjtu 2011.9 程序设计 - 37 链表类的另一种实现链表类的另一种实现 v由于结点类只有链表类要用,因此可以 将结点类作为链表类的内嵌类。 v这样既可以保证结点类对于链表类的私 有性,访问也更加方便。 程序设计 cs.sjtu

4、 2011.9 程序设计 - 38 第第1313章章 泛型机制泛型机制模板模板 v类模板的定义 v类模板的实例化 v模板的编译 v非类型形参和参数的默认值 v类模板的友元 v类模板作为基类 程序设计 cs.sjtu 2011.9 程序设计 - 39 类模板作为基类类模板作为基类 v类模板可以作为继承关系中的基类。自 然,从该基类派生出来的派生类还是一 个类模板,而且是一个功能更强的类模 板。 v类模板的继承和普通的继承方法基本类 似。只是在涉及到基类时,都必须带上 模板参数。 程序设计 cs.sjtu 2011.9 程序设计 - 40 类模板继承实例类模板继承实例 v从linkList类模板派

5、生一个栈的类模板 v栈是一类特殊的线性表,它的插入和删除都 只能在表的一段进行。允许插入和删除的一 端称为栈顶,另一端称为栈底。栈的常用操 作有进栈(push)和出栈(pop)。 v由于栈是一个特殊的线性表,因此可以将栈 建立在表的基础上。在单链表中,我们可以 将表头定义为栈顶,表尾定义为栈底。因此 ,栈就是在单链表的基础上增加两个操作: push和pop。 程序设计 cs.sjtu 2011.9 程序设计 - 41 类模板类模板stackstack的使用的使用 v定义一个整型栈:stack st; v进栈: for (int i = 1; i 10; +i) st.push(i); v出栈: while (st.pop(i) cout i t; v执行结果: 9 8 7 6 5 4 3 2 1 程序设计 cs.sjtu 2011.9 程序设计 - 42 小结小结 v本章介绍了C+中的泛型程序设计的工 具-模板。 v模板是独立于类型的蓝图,编译器可以 根据模板产生多种特定类型的实例。 v模板分为函数模板和类模板。 v本章中,我们学习了如何写一个类模板 ,如何实例化类模板,使之成为一个模 板类,如何定义及使用模板的友元。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号