第九章0522程序设计课件解析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章0522程序设计课件解析

# include iostream //using namespace std; template class T T max( T a, int b); double max( double a, int b); void main( ) { int i1, i2, i3; double d1, d2, d3; i1=3, i2=9; d1=6.7, i3=10; d2=8.4, d3=7.8; std::coutmax(i1,d3)std::endl; std::coutmax(d1,i3)std::endl; std::coutmax(d2,d3)std::endl; } double max( double a, int b) { std::coutdouble max( double, int):; return ab? a:b; } template class T T max( T a, int b) { std::couttemplate max:; return ab? a:b; } void inflate (int increase); int operator[](int index) const; 9.5.2 类模板 函数模板、类模板如果希望被多个程序文件(.cpp)使用,则应在头文件中定义类模板(包括成员函数定义)和函数模板。并在使用类模板或函数模板的程序文件中包含该头文件。因为模板在例化时,需要知道类模板和函数模板的完整定义。 9.5.2 类模板 带非类型参数的类模板: template class T, int size class Stack { T buffer[size]; int top; public: Stack() { top = -1; } bool push(const T x); bool pop(T x); }; template class T,int size bool Stack T,size::push(const T x) { ...... } template class T, int size bool Stack T,size::pop(T x) { ...... } ...... Stackint,100 st1; //st1为元素个数最多为100的int型栈 Stackint,200 st2; //st2为元素个数最多为200的int型栈 9.5.2 类模板 类模板做函数参数 函数的形参类型可以是模板类 或模板类的引用 对应的实参应该是 该类模板实例化的模板类对象 9.5.2 类模板 #include iostream.h templatetypename T class Test { T i; public: void set( T ii ) { i = ii; } void display() { cout The value of i is: i endl; } }; template typename S Void fun ( Test S test ) { test.display( ); } int main( ) { Test int testa; Test char testb; testa.set(2); testb.set(c); fun(testa); fun(testb); return 0; } 模板类 做函数参数 类模板 9.5.2 类模板 类模板与继承 一个类模板在类层次结构中充当的角色: 类模板可以是基类 类模板可以是派生类 类模板可以从模板类派生 类模板可以从非模板类派生 模板类可以从类模板派生 非模板类可以从类模板派生 9.5.2 类模板 示例:从类模板ArrayT派生一个类模板BoundArrayT template typename T class Array { public : Array () ; virtual ~ Array () ; virtual T Entry( int index ) const ; virtual void Enter( int index, const T value ) ; protected : T * element ; } ; template typename T class BoundArray : public Array T { public : BoundArray () ; vi

文档评论(0)

441113422 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档