函数模板模板类模板结构体异常处理概要1.pptVIP

函数模板模板类模板结构体异常处理概要1.ppt

  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文档。上传文档
查看更多
函数模板模板类模板结构体异常处理概要1

史忠植 高级人工智能 函数模板,模板类,模板结构体,异常处理 1.函数模板 在c++没有模板(template)机制的时候,我们使用的就是普通的函数,我们要实现一个加法函数,它能够对两个参数求和,并根据参数的类型返回具有适当类型的值,就必须手工书写所有的代码: ? short?sum(short?a,short?b)?{return?a+b;} int?sum(int?a,int?b){return?a+b;} float?sum(float?a,float?b){?return?a+b;} … 代码重复! 可以用c++的模板函数来表达“通用型的函数” template class?T T?sum(T?a, T?b) { ?????return?a+b; } 保存为sumtest.h 现在,c++编译器可以根据我们调用sum函数的参数类型“现场”生成一个适当的函数,然后调用它。例如: #include?iostream #include?“sumtest.h” using?namespace?std; int?main(void) {??float?fa=1.5,fb=3.2,fs; ????fs=sum(fa,fb); ?cout“sum(float,float)?1and?3=”fsendl; } //输出:sum(float,float)?1?and?3=4 函数模板不是真正的函数,它只是c++编译器生成具体函数的一个模子。 所以不能把函数模板的声明和定义分开放在不同的文件中,而普通的函数可以这样做。 2.模板类 一般格式: template class 参数表 class 类名 { … } templateclass T //定义模板类 class ClassA { T a; int b; public: ClassA(T x, int y) { a=x; b=y;} // 2个参数函数 Output(); }; //模板类中的成员函数在类外定义 templateclass T ClassAT::Output( ) {coutabendl;} void main() { ClassAint d(5,1),e(10,2); //模板类的使用 d.Output(); e.Output(); //定义对象变量 ClassAchar c(G,7); c.Output(); ClassAfloat g(3.5,3); g.Output(); } 多模板参数类的定义:以2个类参数为例 templateclass T,class U //定义模板类 class ClassA { T a; U b; public: ClassA(T x, U y){ a=x; b=y;} Output( ); }; templateclass T, class U ClassAT,U::Output() {coutabendl;} void main() { ClassAint,int d(5,1),e(10,2); //模板类的使用 d.Output(); e.Output(); ClassAchar,int c(G, 7); c.Output(); ClassAfloat,int g(3.5, 3); g.Output(); } 3. 模板结构体 template class T struct node { T data; int no; int sn; }; 结构体变量说明: nodechar stra,strb; template class T struct node { T data; nodeT *next; //注意此用法 }; 结构体变量说明: nodechar strl1,strl2; 4. 异常处理:try–catch的使用 throw—抛出一个异常,供catch捕获 try—检测/捕获异常 catch—处理所捕获的异常 抛出异常在可能产生异常的语句或函数中,用if检测异常,如果异常的条件成立了, 则用throw语句抛出异常。 在调用时,将有可能抛出异常的函数(或语句)的调用一定要放在try语句中,否则出错! 用catch捕获并处理异常。 可能抛出异常的函数 int FuncExcep(int i) {… if(i=

文档评论(0)

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

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

1亿VIP精品文档

相关文档