C++教程 作者 郑莉 李宁 14_模板简介.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文档。上传文档
查看更多
* * * * * * * * * 例14-4:参照例9-11设计一个类模板MyArray,用来实现可以任意指定下标范围的任意类型的数组 * 14.2 类模板 例14-4(续) //MyArray.h #includeiostream using namespace std; templatetypename T class MyArray{ int min_index; int max_index; T *data; public: MyArray( int min, int max); MyArray( int max); ~MyArray( ){ delete []data; }; T operator[](int index)const; int getMinIndex()const{ return min_index; } int getMaxIndex()const{ return max_index; } }; * 14.2 类模板 例14-4(续) templatetypename T MyArrayT::MyArray( int min, int max): min_index(min),max_index(max){ if(minmax){ //若下标范围的下界大于上界,显示出错信息并退出 cout“Error index range”; exit(1); } data=new T[max_index-min_index+1]; } ? templatetypename T MyArrayT::MyArray( int max): min_index(0),max_index(max){ data=new T[max_index+1]; } * 14.2 类模板 例14-4(续) templatetypename T T MyArrayT::operator [](int index)const{ if(indexmin_index || indexmax_index){ //若下标越界,显示出错信息并退出 coutIndex out of range; exit(1); } return data[index-min_index]; } ? templatetypename T istream operator(istream is, MyArrayT a){ for(int i=a.getMinIndex(); i=a.getMaxIndex(); i++) isa[i]; return is; } * 14.2 类模板 例14-4(续) templatetypename T ostream operator (ostream os, const MyArrayT a){ for(int i=a.getMinIndex(); i=a.getMaxIndex(); i++) osa[i] ; return os; }? //14_4.cpp #includeMyArray.h int main(){ MyArrayint x(3,8); cout“请输入”(x.getMaxIndex()-x.getMinIndex()+1)“个数据:”; cinx; cout“刚输入的数据是:”; coutxendl; ? return 0; } * 14.2 类模板 运行结果: 请输入6个数据:1 2 3 4 5 6 刚输入的数据是:1 2 3 4 5 6 例14-4(续) 14.2 类模板 * 14.3 类模板与继承 模板类继承普通类在模板外定义模板类的成员函数 模板类继承类模板的实例 模板类继承模板类 普通类继承类模板的实例 模板类继承模板参数给出的基类 * 例14-5:设计模板类Derived,使得在创建一个Derived对象时可以动态确定它的基类 * 14.3 类模板与继承 例14-5(续) //DynaBase.h #includeiostream using namespace std;? class Base_A{ public: Base_A(){ cout创建Base_Aendl;} }; ?class Base_B{ public: Base_B(){ cout创建Base_Bendl;} }; templatetypename T class Derived:public T{ public: Derived():T(){ cou

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档