c++程序设计 陈圣国 第6章.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.1 模?板?的?概?念 6.2 函 数 模 板 *6.3 类 模 板 6.4 编程示例: 栈模板 定义一个整型集合对象,参数T由int类型替换,而参数size使用缺省值maxCard,也可以像下面这样指明size的大小: Setfloat, 10 s; 定义一个浮点型的数据集合对象,集合的最大元素个数为10。要注意的是,传递给size的值只能用常量表达式,而不能含有变量,因为模板的参数是在编译时处理的,而在编译阶段不可能计算变量表达式的值。 栈又叫堆栈,是一种常用的数据结构,它是一种运算受限的线性表。仅允许在表的一端进行插入和删除运算,是一种后进先出表。 [程序6.1] #include iostream.h enum bool {False, True}; //抽象堆栈类模板定义 template class T class AbsStack{ protected: unsigned height; public: bool IsEmpty( ){return (height==0)?True:False;} virtual void push(T )=0; virtual void pop(T )=0; virtual void Empty( )=0; virtual void ReadTop(T )=0; }; //使用数组存储数据元素的堆栈类模板 template class T, int Size class ArrayStack:AbsStackT{ bool Error; T vec[Size]; public: ArrayStack( ){Empty( );} virtual void push(T ); virtual void pop(T ); virtual void Empty( ); virtual void ReadTop(T ); bool IsError( ){return Error;} }; //压栈操作 template class T, int Size void ArrayStackT, Size::push(T elem) { Error=False; if(height==(Size-1)){ Error=True; return; } vec[height]=elem; height++; } //出栈操作 template class T, int Size * 6.1 模板的概念 6.2 函数模板 6.3 类模板 6.4 编程示例:栈模板 第 6 章 模板 返回主目录 6.1.1 什么是模板 在编程中程序员经常会遇到这样的情况,对于不同数据类型的参数虽然需要实现相似的函数功能,例如编写求两个整型数据中最大值的函数与求两个实型数据最大值的函数,它们的程序逻辑相同,程序代码也相同,只是它们的参数类型与返回值类型不同。对这样的情况,在C语言中程序员不得不定义两个函数,然后将程序代码重复书写一遍。同样有时也会遇到具有类似功能的类,例如一个整型数据集合的类与实型数据集合的类,它们实现的功能相同,但存储的数据类型不同。 对于上面的情况,C++语言中可以使用模板来避免在程序中多次书写相同的代码。模板是一种描述函数或类的特性的蓝图。可以从一个函数模板生成多个函数或从一个类模板生成多个类。建立一个模板后,编译器将根据需要从模板生成多份代码。 6.1.2 模板的基本语法 C++语言中使用关键字template开始一个模板的声明,模板声明的一般形式为: template模板参数表说明体 模板参数表可以包含一个或多个模板参数声明,如果有多个模板参数,参数与参数之间以逗号隔开。例如带有一个参数的模板可以以下述形式开头: templateclass T class表示参数T是一个数据类型。在使用该模板时,T可以用用户定义的数据类型,也可以用C++语言固有的数据类型,如int、float等替换。这里的class与类定义中的class没有关系。 参数标识符T也可以用其它的任何标识符来表示,例如: templateclass first 通常的习惯是,表示数据类型的参数用

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档