内蒙古财经大学计算机信息管理学院程序设计基础课件第十三章 模板与异常处理.ppt

内蒙古财经大学计算机信息管理学院程序设计基础课件第十三章 模板与异常处理.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
国家级精品课程网站 (本书配套教学网站) 第13章 模板与异常处理 13.1 模板 13.2 异常处理机制 13.3 友元 程序设计举例 13.1 模板 一、函数模板 1、定义格式: template 模板参数表 类型 函数名(参数表) { … } 2、说明 (1)模板参数表中的模板参数的形式为class 类型参数,这里关键字class与一般所讲的类无关,而是与类型参数一起说明这是一个内部类型或用户自己定义的数据类型。 (2)在使用模板函数时,模板中的类型参数可用一个实际类型替换,从而达到了类型通用的目的。 (3)当类型参数的含义确定后,编译器将以函数模板为样板,生成一个函数。 [例12-1]求两个数最大值的函数模板 #include iostream #include string using namespace std; template class T T Max(T a, T b) { return ab?a:b; } // 测试用主函数 int main() { int i1 = 3, i2 = 5; double d1 = 3.3, d2 = 5.2; string str1(xjtu), str2(xian); cout Type int: Max(i1, i2) endl; cout Type double: Max(d1, d2) endl; cout Type string: Max(str1, str2) endl; return 0; } 3、使用函数模板的注意事项 (1)在函数模板的参数表中,至少有一个参数的类型为模板的类型参数。另外,函数的返回值的类型也可以是该类型参数。 (2)模板中可以带有多个参数类型。 例如: template class T1, class T2, class T3 void func1(T1 arg1,T2 arg2, T3 arg3) { … } (3)函数可以带有模板参数表中未给出的、已存在的数据类型的参数。 例如: template class T T func2(T arg1,int arg2) { … } 二、类模板 1、类是对问题空间的抽象,而类模板则是对类的抽象,即更高层次上的抽象。 2、程序中可以首先定义一个类模板,然后通过使用不同的实参生成不同的类。 3、类模板的定义格式: template class 类型参数 class 类名 { …… }; 例13-2定义一个任意类类型AnyType #include iostream using namespace std; template class T class AnyType { T x, y; public: AnyType(T a, T b): x(a), y(b){} T GetX(){return x;} T GetY(){return y;} }; // 测试用主函数 int main() { AnyType int i (1, 2); AnyType double d (1.5, 2.7); AnyType char c (a, b); AnyType char * s (Hello, template class); cout 整型类: i.GetX() , i.GetY() endl; cout 双精度类: d.GetX() , d.GetY() endl; cout 字符类: c.GetX() , c.GetY() endl; cout 字符串类: s.GetX() , s.GetY() endl; return 0; } 13.2 异常处理机制 异常处理机制的作用: 使程序可以向更高的层次传递意想不到的事件 使程序能更好地从异常事件中恢复过来。 异常处理由三个语句实现 1. 异常处理的语句 (1) throw 用来检测是否产生异常,若是,则抛掷异常。 格式: throw 表达式; (2) try 是一个复合语句块,它将那些有可能产生异常的语句框定在try块中,并根据异常的情况使用不同的throw表达式抛出异常。 try { //复合语句 …… throw 表达式1; …… throw 表达式n; } (3)catch catch块中放置异常处理的语句 每个catch块是一个复合语句,处理相应的异常。 格式: catch(异常类型说明1) { ......//复合语句 } 例

文档评论(0)

ormition + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档