- 1
- 0
- 约4.61千字
- 约 20页
- 2019-09-15 发布于山西
- 举报
面向对象技术与Visual C++---第6章 第6章 模板 6.2函数模板 函数模板的定义格式 : 6.2.2模板函数的生成 函数模板是对一组函数的描述,它以任意类型T为参数及函数返回值。 当编译系统在程序中发现有与函数模板中相匹配的函数调用时,便生成一个重载函数,该重载函的函数体与函数模板的函数体相同。 该重载函数称为模板函数。它是函数模板的一个具体实例,只处理一种惟一的数据类型。 参考P130图6-2 6.3类模板 定义类模板的一般格式: template 类型参数表 class 类模板名 { 类成员的声明 }; 类型参数表中包括一个或多个用逗号分开的类型,参数项可以包括基本数据类型,也可以包括类类型;如果是类类型,这须加前缀class 类模板中的成员函数的定义 可以放在类模板的定义体中(此时与类中的成员函数的定义方法一致) 也可以放在类模板的外部定义成员函数,此时成员函数的定义格式如下: 类模板的使用 利用类模板定义的只是对类的描述,它本身还不是一个实实在在的类。要定义类模板的对象(即实例),需要用下列格式的语句: 类模板名 实际的类型 类模板名 实际的类型 对象名[(实际参数表)]; 例 类模板应用举例 6-4.cpp #include iostream.h #include stdlib.h // 结构体Student struct Student { int id; //学号 float gpa; //平均分 }; template class T //类模板:实现对任意类型数据进行存取 class Store { private: T item; // 用于存放任意类型的数据 int haveValue; // 用于标记item是否已被存入内容 public: Store(void); // 缺省形式(无形参)的构造函数 T GetElem(void); //提取数据函数 void PutElem(T x); //存入数据函数 }; // 缺省形式构造函数的实现 template class T StoreT::Store(void): haveValue(0) {} template class T // 提取数据函数的实现 T StoreT::GetElem(void) { // 如果试图提取未初始化的数据,则终止程序 if (haveValue == 0) { cout No item present! endl; exit(1); } return item; // 返回item中存放的数据 } template class T // 存入数据函数的实现 void StoreT::PutElem(T x) { haveValue++; // 将haveValue 置为 TRUE,表示item 中已存入数值 item = x; // 将x值存入item } void main(void) { Student g= {1000, 23}; Storeint S1, S2; StoreStudent S3; Storedouble D; S1.PutElem(3); S2.PutElem(-7); cout S1.GetElem( ) S2.GetElem( ) endl; S3.PutElem(g); cout The student id is S3.GetElem( ).id endl; cout Retrieving object D ; cout D.GetElem( ) endl; //输出对象D的数据成员 // 由于D未经初始化,在执行函数D.GetElement( )时出错 } * * 本章主要内容 模板的概念 函数模板和模板函数 类模板和模板类 int abs(int x) { cout Using integer version of abs(); return (x = 0 ? x : -x); } double
您可能关注的文档
- 3.1地理信息系统及其应用第1课时.ppt.pptx
- 2世界陆地和海洋.pptx
- 31 地理信息系统及其应用 第1课时.pptx
- 4章56节地下水污染.pptx
- 400V开关及保护(杨玮峰).ppt
- 504项目管理工作汇报2012年10.ppt
- 600MW亚临界机组锅炉灭火快速降负荷功能的应用与实践.ppt
- 6147 数据通信技术教程 第2版 电子教案 蒋占军主编 第六章 物理层接口与传输控制规程.ppt
- 7655型气腿式凿岩机使用说明书.pptx
- 80128公益讲座701乐乐就是精读style.ppt
- 2026年柳州城市职业学院单招职业技能考试题库及参考答案详解.docx
- 2026年柳州城市职业学院单招职业技能考试题库带答案详解.docx
- 2026年柳州城市职业学院单招职业技能测试题库含答案详解.docx
- 2026年柳州城市职业学院单招职业技能考试题库参考答案详解.docx
- 2026年柳州城市职业学院单招职业技能考试题库及参考答案详解1套.docx
- 2026年柳州城市职业学院单招职业技能测试题库含答案详解.docx
- 2026年柳州城市职业学院单招职业技能测试题库含答案详解.docx
- 2026年柳州城市职业学院单招职业技能测试题库及完整答案详解1套.docx
- 2026年柳州城市职业学院单招职业技能测试题库及参考答案详解一套.docx
- 2026年柳州城市职业学院单招职业技能测试题库附答案详解.docx
原创力文档

文档评论(0)