C++实验六 函数模板,类模板和标准模板库_第1页
C++实验六 函数模板,类模板和标准模板库_第2页
C++实验六 函数模板,类模板和标准模板库_第3页
C++实验六 函数模板,类模板和标准模板库_第4页
C++实验六 函数模板,类模板和标准模板库_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论