版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、福 建 工 程 学 院实 验 报 告面向对象程序设计(C+)专 业 电子信息工程 班 级 1303 座 号 姓 名 日 期 2015-12-01 实验六 函数模板,类模板和标准模板库一、 实验目的:掌握函数模板、类模板的格式、语法及应用。掌握标准模板库的应用。二、 实验时间:2015-12-01三、 实验地点:C2-101四、 实验内容:1编写函数模板:编写一求两个数的最大值的函数Max(),要求用模板实现对任意数据类型数据都可应用该函数求取结果,在main()函数中分别用整型、实型、字符型数据进行测试。#include <iostream>using namespace std;
2、template <typename T>T Max (T x, T y) return x>y?x:y;int main() int x1=10,x2=20;double d1=15.123,d2=19.0321;char c1='a',c2='y'cout<<"Max(10,20):"<<Max(x1,x2)<<endl;cout<<"Max(15.123,19.0321):"<<Max(d1,d2)<<endl;cout<
3、<"Max('a','y'):"<<Max(c1,c2)<<endl;return 0; 2.编写一冒泡排序的函数模板: 函数的定义为:template <typename ElementType >void SortBubble ( ElementType *a , int size ),完成该函数并在main()中调用。#include <iostream>using namespace std;template <typename ElementType >void So
4、rtBubble ( ElementType *a , int size )int i, work ;ElementType temp ;for (int pass = 1; pass < size; pass + ) work = 1;for ( i = 0; i < size-pass; i + )if ( ai > ai+1 ) temp = ai ; ai = ai+1 ; ai+1 = temp ; work = 0 ; if ( work ) break ; int main() int arr5 = 3,12,2,10,0;SortBubble(arr,5);c
5、out<<arr0<<" "<<arr1<<" "<<arr2<<" "<<arr3<<" "<<arr4<<" "<<endl;double dArr4 = 1.20,5.62,3.012,8.101;SortBubble(dArr,4);cout<<dArr0<<" "<<dArr1<<&quo
6、t; "<<dArr2<<" "<<dArr3<<" "<<endl;char cArr3 = 's','d','w'SortBubble(cArr,3);cout<<cArr0<<" "<<cArr1<<" "<<cArr2<<" "<<endl;return 0; 3. 类模板操作: 有以下类
7、模板 template <class T> /类模板:实现对任意类型数据进行存取class Store private: T item; / 用于存放任意类型的数据 int haveValue; / 用于标记item是否已被存入内容 public: Store(void); / 默认形式(无形参)的构造函数 T GetElem(void); /提取数据函数 void PutElem(T x); /存入数据函数;请实现并测试该类。#include <iostream>#include <string>using namespace std;struct Peo
8、ple string name;int age;class Dog public:string name;public:Dog() Dog(string n):name(n) void wang() cout<<"Wang Wang。"template <class T> class Store private: T item; int haveValue; public: Store(void); T GetElem(void); void PutElem(T x); ;template<class T>Store<T>:S
9、tore(void):haveValue(0) template<class T>void Store<T>:PutElem(T x) haveValue=1;item = x;template<class T>T Store<T>:GetElem(void) if(haveValue = 0) cout<<"No item present!"<<endl;exit(1);return item;int main() /int 类型Store<int> i1,i2;i1.PutElem(5)
10、;i2.PutElem(999);cout<<i1.GetElem()<<" "<<i2.GetElem()<<endl;/People 类型People p = "Tom",20;Store<People>ps;ps.PutElem(p);cout<<"Name is:"<<ps.GetElem().name<<" age is:"<<ps.GetElem().age<<endl;/Dog 类型
11、Dog d("snoopy");Store<Dog>ds;ds.PutElem(d);cout<<"Dog's name is :"<<ds.GetElem().name<<endl;/double 类型Store<double>d1,d2;d1.PutElem(3.14159);cout<<d1.GetElem()<<endl;cout<<d2.GetElem()<<endl;return 0;4. 应用标准模板库的容器进行编程: 类A的定义如下,对<进行重载,请补全该类,并在main()中测试<对容器对象的应用程序: include <vector>#include <iostream>class A private:int n;public:friend bool operator < (const A &, const
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 202510年劳动合同范本
- 2025年滨州道路货物运输驾驶员考试
- 2025年西安货运从业资格证考试模拟题
- 2025简单借款合同
- 2025年铁岭货运资格证题库下载安装
- 中国摆管淋雨试验箱项目投资可行性研究报告
- 陶瓷地砖内墙砖行业深度研究报告
- 上海现代化工职业学院《常微分方程引论》2023-2024学年第一学期期末试卷
- 上海体育大学《企业技术项目实训5》2023-2024学年第一学期期末试卷
- 2025小学驾驶员安全责任管理合同
- GB/T 18281.3-2024医疗保健产品灭菌生物指示物第3部分:湿热灭菌用生物指示物
- 消防法知识课件
- 计量经济学练习题
- 第七单元测试卷-2024-2025学年语文四年级上册(统编版)
- 北京市海淀区2023-2024学年高三上学期期末考试 英语 含答案
- 探索心理学的奥秘智慧树知到期末考试答案章节答案2024年北京大学
- 学术交流英语(学术写作)智慧树知到期末考试答案2024年
- 北京市西城区2023-2024学年六年级上学期期末英语试题
- 低压配电柜GGD技术规范
- 2022年锅炉水处理作业人员(特种作业)考试题库
- 技术顾问聘用协议书范文
评论
0/150
提交评论