实验10模板与异常处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验10 模板与异常处理
班级: 11512 学号: 20113051209 姓名:刘佳成绩:1、实验目的
(1)理解模板、异常处理及相关概念。
(2)掌握函数模板和类模板的定义和使用。
(3)掌握编写C++程序时,在程序中加入异常处理机制。
2、实验内容
(1)设计一个函数模板max,完成求两个数中的较大数的功能。#include
using namespace std;
template
T compare(T a,T b)
{
if(a>b)
return a;
else
return b;
}
void main()
{
cout<<"compare(4,44)="< cout<<"compare(4.4,44.4)="< cout<<"compare('a','b')="< cout< } (2)设计一个数组类模板A template class Array { private: int length; T *a; public: { length=n; a=new T[length]; } void display() { int i; for(i=0;i cin>>a[i]; cout<<"请输的数组为:"< for(i=0;i cout<<"a["< } ~Array() { delete [] a; } }; void main() { Array a1.display(); } (3)从键盘上输入x和y的值,计算z=ln(3x-2y)的值,要求对“负数求对数”的情况进行异常处理。 (4)编写程序,求函数表达式f(x,y)=y x 的值,并能够处理各种异常(可选题)。#include #include using namespace std; class Hs { private: int x,y; public: { x=m; y=n; } ~Hs() {} void display() { try { if(x throw 1; cout<<"f(x,y)="< } catch(int) { cout< } } }; void main() { Hs h(12,11); Hs h1(12,13); h.display(); h1.display(); } 3、实验结果 (1)编写相应程序,并调试运行。 (2)编写实验报告,给出源程序及输入/输出结果。 (3)对实验过程中遇到的问题及体会做总结。 实验报告:在一个程序下一种符号不能用于2种定义,在类模板的主函数中,要注意定义方式。