第9章 模板学习 文档 参考.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  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文档。上传文档
查看更多
C++实用教程 章韵等 第九章 模版 高等教育出版社 第九章 模板 9.1 模板的基本概念 9.3 类模板 9.2 函数模板 * 9.1 模板的基本概念 将程序写得尽可能通用 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 问题的提出 * 例: int max(int x,int y) {return(x>y)?x:y;} 类型参数化 实现代码重用 模板作用 float max(float x,float y) {return(x>y)?x:y;} double max(double x,double y) {return(x>y)?x:y;} 9.1 模板的基本概念 * 函数模板声明格式 templat <class Type> 返回类型 函数名< 参数表 > { 函数体;} 声明关键字 模板形参 如:templat <class T > T min( T x, T y) { return (x<y)?x:y; } 系统预定义数据类型 用户自定义数据类型 模板形参 T 9.2 函数模板及其应用 * 函数模板——一类函数的抽象 template <class AT> AT min (AT x,AT y) { return(x<y)?x:y;} 任意类型 模板函数——某一具体的函数 void main() { int i=5,j=14; float f1=20.68, f2=36.54; cout<<"the min of i, j is:"<< min(i,j)<<endl; cout<<"the min of f1, f2 is:" << min(f1,f2)<<endl; } 实例类型 9.2 函数模板及其应用 * 9.2 函数模板及其应用 函数模板代表一类函数 实例化后表示某一具体的函数 函数模板 min(x,y) 实例化 min(i1,i2) i1,i2 整型 实例化 min(f1,f2) f1,f2浮点型 实例化 min(d1,d2) d1,d2双精度型 实例化 min(c1,c2) c1,c2字符型 * 使用说明 函数模板中可以用多个类型的参数,每个模板形 参必须加有关键字class。 在template语句与函数模板之间不允许有其他语句 用不同类型实例化后所执行的语句是相同的 9.2 函数模板及其应用 * 9.3 类模板及其应用 类模板声明格式 templat <class Type> class 类名{  ……    }; 模板关键字 模板参数 类模板:对一批仅仅成员数据类型不同的类的抽象,是一种声明通用类的方法 * 在类定义中,若采用通用数据类型定义 数据成员的参数 成员函数的参数或返回值 时,在前面均需加上Type。 9.3 类模板及其应用 * template <class numtype> //声明一个类模板,类型名为numtype class Compare //类模板名为Compare {public : Compare(numtype a,numtype b) {x=a;y=b;} numtype max() {return (x>y)?x:y;} numtype min() {return (x<y)?x:y;} private: numtype x,y; }; 实例化为int的方法: Compare <int> cmp(3,5); 9.3 类模板及其应用 * 类模板——一类类 template<class Type> class stack{ …… }; 实例化——某一具体的类 类名 <实际类型>对象名; 9.3 类模板及其应用 * 类模板代表一类类 实例化后表示某一具体的类 类模板 Compare(numtype,numtype) 实例化 Compare (char,char) 实例化 Compare (double,double) 实例化 Compare (int,int) 9.3 类模板及其应用 * * * *

文档评论(0)

文人教参 + 关注
实名认证
文档贡献者

老师教学,学生学习备考课程、成人语言培训课程及教材等为提升学生终身学习竞争力,塑造学生综合能力素质,赋能学生而努力

版权声明书
用户编号:6103150140000005

1亿VIP精品文档

相关文档