模板类和异常处理

上传人:wm****3 文档编号:56926020 上传时间:2018-10-17 格式:PPT 页数:24 大小:117KB
返回 下载 相关 举报
模板类和异常处理_第1页
第1页 / 共24页
模板类和异常处理_第2页
第2页 / 共24页
模板类和异常处理_第3页
第3页 / 共24页
模板类和异常处理_第4页
第4页 / 共24页
模板类和异常处理_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《模板类和异常处理》由会员分享,可在线阅读,更多相关《模板类和异常处理(24页珍藏版)》请在金锄头文库上搜索。

1、2018/10/17,1,数据结构,预备知识 北京邮电大学电信工程学院计算机技术中心,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-2-,预备知识,模板1 函数模板2 类模板 异常处理throwtrycatch,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-3-,模板,什么是模板?模板是C+中的通用程序模块。运行中根据输入的不同的数据类型,可以产生不同的程序模块。 分类 1 函数模板2 类模板,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-4-,模板,函数模板用来实现一些通用的函数。尤其对于一些函数功能相同,但函数使用的数据类型不同的地方。

2、比如:求最大值、各种算数运算等、排序、查找等等。,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-5-,比如,比较运算int Compare(int a, int b);int Compare(float a, float b);int Compare(char a, char b);,template int Compare(T a, T b);,关键字,形式化参数,函数模板,定义template 函数类型 函数名(形参)函数体; 使用和普通的函数使用方法一样。,T1称为形式化参数,函数类型、形参类型都可以使用T作为数据类型,2018/10/17,北京邮电大学电信工程学院计算

3、机技术中心,-7-,函数模板,例如template /求两个数中较大的一个T max(T a, T b)return a = b ? a : b;void main() coutmax(1, 2) endl; /调用方法coutmax(a, b) endl; ,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-8-,思考:实现一个通用查找函数,普通的查找函数int Find(int a, int e, int len) for (int i=0;ilen; i+)if (ai = e)return i;return -1; ,2018/10/17,北京邮电大学电信工程学院计算机技

4、术中心,-9-,思考:实现一个通用查找函数,template int Find(T a, T e, int len) for (int i=0;ilen; i+)if (ai = e)return i;return -1; ,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-10-,类模板,类模板用来实现一些通用的类。尤其是数据结构中使用的各种逻辑结构,比如:集合类、数组类等等。,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-11-,类模板,类定义template class 类名成员变量;成员函数;,成员变量的类型、成员函数的类型等都可以使用T作为数据类型,2

5、018/10/17,北京邮电大学电信工程学院计算机技术中心,-12-,类模板,类外实现成员函数template 函数类型 类名:成员函数名(形参)函数体;,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-13-,类模板,模板类的使用类名 对象名;,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-14-,例子,题目实现一个通用数组类,要求:1、可以容纳任意类型的数据2、数组长度可任意3、实现增加、删除、获取数组长度的操作,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-15-,template class Array public:Array();

6、void Add(T x);T Remove(int i);int Getlength();Array(); private:T *pdata;int n; ;,说明模板类,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-16-,template Array:Array() pdata = NULL;n = 0; template Array:Array() delete pdata; ,前缀模板类,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-17-,template void Array:Add() template T Array:Remove(int

7、i) Array a;,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-18-,异常处理,如何增加程序的鲁棒性?程序在实际运行中,总会有一些因素导致程序不能正常运行。正常运行的一个程序可能发生的错误,称为异常。异常处理提供了一种机制,用来对异常进行监测和控制。,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-19-,异常处理,异常处理机制throw 抛出异常,供try捕捉try 监测/捕捉异常catch 处理try捕捉的异常,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-20-,例子,没有异常处理的系统函数#include using name

8、space std; void main()char *s=“Hello“;char *buf = NULL;strcpy(buf, s);,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-21-,运行结果,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-22-,改进:增加异常处理,/例如:字符串拷贝函数 void Strcpy(char *d, const char *s) if (d=NULL | s!=NULL)throw ”字符串指针未初始化!” /抛出异常,函数运行到此处终止elsewhile (*d+=*s+); ,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-23-,异常处理,void main() char *s=“Hello”;char *buf = NULL;tryStrcpy(buf, s);catch (char *e) /捕捉异常couteendl; ,2018/10/17,北京邮电大学电信工程学院计算机技术中心,-24-,运行结果,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号