《面向对象程序设计》课程教学资源(PPT课件)第13章 模板与异常处理

第13章模板与异常处理·13.1模板13.2异常处理机制13.3友元程序设计举例
第13章 模板与异常处理 0 13.1 模板 13.2 异常处理机制 13.3 友元 程序设计举例

模板13.1 7应用背景1、两个或多人函数的程序结构相同;2、P两个或多个类的结构相同;差别:参数/数据成员类型不同,3、天函数/成员函数返回类型不同解决方法:C++提供了模板机制作用:简化程序代码,实现软件复用
13.1 模板 1 应用背景: 1、两个或多个函数的程序结构相同; 2、两个或多个类的结构相同; 3、差别:参数/数据成员类型不同, 函数/成员函数返回类型不同。 解决方法:C++提供了模板机制 作用:简化程序代码,实现软件复用

模板13.1 7C++模板类型1、函数模板抽象通用的函数,可生成一批具体的函数由函数模板经实例化生成的具体函数称为模板函数。2、类模板抽象通用的类,可生成一批具体的类由类模板经实例化生成的具体类称为模板类
13.1 模板 2 C++模板类型: 1、函数模板 抽象通用的函数,可生成一批具体的函数。 由函数模板经实例化生成的具体函数称为模板函数。 2、类模板 抽象通用的类,可生成一批具体的类。 由类模板经实例化生成的具体类称为模板类

模板13.1函数模板:一,用来定义通用的函数,其作用类似函数重载优点:编码比函数重载简单1、定义格式:template ()..注:函数模板为通用函数,其函数类型和形参类型不具体指定,用虚拟的类型来代表
13.1 模板 3 一、函数模板: 用来定义通用的函数,其作用类似函数重载 优点:编码比函数重载简单 1、定义格式: template > () { . } 注:函数模板为通用函数,其函数类型和形参类型 不具体指定,用虚拟的类型来代表

2、说明(1)“模板参数表"中的模板参数的形式为class或typename注:此处关键字class与一般所讲的类无关,而是与“类型参数一起说明这是一个内部类型或用户自己已定义的数据类型(2)在使用模板函数时,模板中的类型参数可用一个实际类型替换,从而达到了类型通用的自的,(3)当类型参数的含义确定后,编译器将以函数模板为样板,生成一个具体的函数
4 2、说明 (1) “模板参数表”中的模板参数的形式为: class 或 typename 注:此处关键字class与一般所讲的类无关,而是与“类型参 数”一起说明这是一个内部类型或用户自己定义的数据类型。 (2)在使用模板函数时,模板中的类型参数可用一 个实际类型替换,从而达到了类型通用的目的。 (3)当类型参数的含义确定后,编译器将以函数 模板为样板,生成一个具体的函数

例13-1求两个数最大值的函数模板#include#includeusing namespace std:template//模板声明,T为类型参数,或Max(T a,T b) //()return a>b?a:b;
例13-1 求两个数最大值的函数模板 5 #include #include using namespace std; template //模板声明,T为类型参数,或 Max(T a, T b) //() { return a>b?a:b; }

/测试用主函数Typeint:5int mainOdouble:5.2TypeTypestring:xjtuint i1 = 3, i2 = 5:double d1 = 3.3, d2 = 5.2:string str1("xjtu"), str2("xian"):cout << "Type int: " << Max(il, i2) << endl:cout << "Type double: " << Max(dl, d2) << endl;cout <<"Type string: " <<Max(strl, str2)<< endl:return O;人D
6 //测试用主函数 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)函数的返回值的类型也可以是该类型参数。(3)模板中可以带有多个参数类型例如:template void func1(T1 arg1 , T2 arg2, T3 arg3)..7
3、使用函数模板的注意事项 7 (1)在函数模板的参数表中,至少有一个参 数的类型为模板的类型参数。 (2)函数的返回值的类型也可以是该类型参 数。 (3)模板中可以带有多个参数类型。 例如: template void func1(T1 arg1,T2 arg2, T3 arg3) { . }

(4)函数可以带有模板参数表中未给出的已存在的数据类型的参数例如 :template T func2(T argl , int arg2)Y人
8 (4)函数可以带有模板参数表中未给出的、 已存在的数据类型的参数。 例如: template T func2(T arg1,int arg2) { . }

例13-4:方幂为正整数的幂函数模板template T Power(T a, int m)Ty=a,while(--m>0)//m=m-1;m>0( y*=a;return y
例13-4:方幂为正整数的幂函数模板 9 template T Power(T a, int m) { T y = a; while(-m>0) //m=m-1;m>0 { y*=a; } return y; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《面向对象程序设计》课程教学资源(PPT课件)第12章 多态性.ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第11章 类(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第10章 结构(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第21章 异常处理(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第20章 模板(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第19章 IO流(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第18章 运算符重载(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第17章 多态(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第16章 继承(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第15章 静态成员函数与友元(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第14章 堆与拷贝构造函数(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第13章 面向对象程序设计(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第12章 构造函数(PPT).ppt
- 《C语言》课程资源_智慧树使用手册_学生端使用手册.ppt
- 《C语言》课程教学课件(PPT讲稿)第25次课(函数定义、调用、参数传递、返回值).ppt
- 《C语言》课程教学课件(PPT讲稿)第27次课(函数进一步讨论).ppt
- 《C语言》课程教学课件(PPT讲稿)第29次课 结构体.ppt
- 《C语言》课程教学课件(PPT讲稿)第31次课(编译预处理命令 位运算 文件).ppt
- 《C语言》课程教学资源(教程讲义)C语言程序设计新思路(1-3章).pdf
- 《C语言》课程教学课件(PPT讲稿,教程)第1章 引论.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第14章 标准库和输入输出流.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第15章 链表.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第9章 类和对象(一).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第10章 类和对象(二).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第11章 继承和派生.ppt
- 山东理工大学:《面向对象程序设计》课程实验指导书(C++).pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第4章 AutoCAD尺寸标注.pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第5章 AutoCAD绘制机械图样表达.pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第6章 AutoCAD绘制机械工程图.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第1章 AutoCAD设计基础.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第2章 AutoCAD绘图平面图形.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第3章 AutoCAD绘制形体视图.pdf
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第6章 AutoCAD绘制机械工程图.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第7章 实训.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第1章 AutoCAD设计基础.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第2章 AutoCAD绘图平面图形.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第3章 AutoCAD绘制形体视图.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第4章 AutoCAD尺寸标注.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第5章 AutoCAD绘制机械图样.ppt
- 《IT项目管理》课程教学课件(讲稿)3-项目结束.pdf
