全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类模板 类模板也称为类属类或类生成类,是为类定义的一种模式,它使类中的一些数据成员和成员函数的参数或返回值可以取任意的数据类型。类模颁布是一个具体的类,它代表着一族类,是这一族类的统一模式。使用类模板就是要将它实例化为具体的类。 定义类模板的一般形式为: template class 类名 / 其中,template是声明类模板的关键字;template后面的尖括号不能省略;数据类型参数标识符是类模板中参数化的类型名,当实例化类模板时,它将由一个具体的类型来代替。 定义类模板时,可以声明多个类型参数标识符,各标识符之间用逗号分开。 类定义中,凡要采用标准数据类型的数据成员、成员函数的参数或返回类型的前面都要加上类型标识符。 如果类中的成员函数要在类的声明之外定义,则它必须是模板函数。其定义形式为: template数据类型参数标识符 类名函数名(数据类型参数标识符 形参1,数据类型参数标识符 形参n) 函数体模板类将类模板的模板参数实例化后生成的具体的类,就是模板类。由类模板生成模板类的一般形式为:类名对象名1,对象名2,对象名n;这里的数据类型参数标识符对应的是对象实际需要的数据类型。 6.4 应用举例 例6.1 函数模板的声明和模板函数的生成的例。 #include template /声明模板函数,T为数据类型参数标识符 void swap(T &x, T &y) /定义模板函数 T z; /变量z可取任意数据类型及模板参数类型T z=y;y=x;x=z; void main() int m=1,n=5; double a=8.9,b=3.4; cout”m=”m” n=“nendl;cout”a=”a” b=”bnedl; swap(m,n); /实例化为整型模板函数 swap(a,b); /实例化为双精度型模板函数 cout“m与a,n与b交换以后:”endl; cout”m=”m” n=“nendl; cout”a=”a” b=”bendl; 程序运行结果: m=1 n=5 a=8.9 b=3.4m与a,n与b交换以后:m=5 n=1a=3.4 b=8.9例6.2 类模板的声明和模板类的生成的例。 #include const int size=10; template class stack T stcksize; int t; public: stack()t=0; void push(T ch); T pop(); ; template void stack:push(T ob) if (t=size) cout”stack is full!”endl; return 0; stckt=ob; t+; template void stack:pop() if (t=0) cout”stack is empty!”endl; return 0; t-; return stckt; main() stackcs1,cs2; int i; cs1.push(a); cs2.push(x); cs1.push(b); cs2.push(y); cs1.push(c); cs2.push(z); for(i=0;i3;i+) cout”pop cs1:”cs1.pop()endl; for(i=0;i3;i+) cout”pop cs2:”cs2.pop()endl; stackis1,is2; is1.push(1); is2.push(2); is1.push(3); is2.push(4); is1.push(5); is2.push(6); for(i=0;i3;i+) cout”pop is1:”is1.pop()endl; for(i=0;i3;i+) cout”pop is2:”is2.pop()endl; return 0; 程序运行结果: pop cs1:c pop cs1:b pop cs1:c po
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江宁波春晓街道招聘编外人员1人备考题库有完整答案详解
- 2025年南昌市湾里管理局招聘社区工作者(专职网格员)14人备考题库附答案详解(b卷)
- 专科护士主导的个性化伤口干预方案
- COPD肺泡上皮损伤的干细胞干预策略
- 2025年12月广东深圳市福田区梅林街道办事处选用场馆管理岗2人备考题库及答案详解(名校卷)
- 安义县城市管理和综合执法局2025年公开招聘编外工作人员备考题库含答案详解
- 2025贵州黔东南州榕江县寨蒿镇人民政府专职消防员招聘1人备考题库含答案详解(黄金题型)
- 2025年甘肃省平凉市第四批市直单位公益性岗位工作人员招聘59人备考题库及一套答案详解
- 2025年佳木斯市公安局面向社会公开招聘警务辅助人员政治考察备考题库含答案详解(典型题)
- 2026中国农业银行农银人寿保险股份有限公司校园招聘71人备考题库带答案详解(完整版)
- 中国普通食物营养成分表一览
- 《发展汉语(第二版)中级综合(Ⅰ)》第7课+课件
- 教师资格认定擀情况及不规范问题在中小学教师资格定期注册制度试点工作中的处理办法
- GB/T 27904-2011火焰引燃家具和组件的燃烧性能试验方法
- GB/T 17622-2008带电作业用绝缘手套
- 湿性愈合和新型敷料选择课件
- 第三章-水环境质量环境监测与评价课件
- NBC气保焊使用说明书
- 定价决策的基本理论 定价方法课件
- 《垂体危象》课件
- 医疗器械售后承诺书3篇 医疗器械公司售后服务承诺
评论
0/150
提交评论