- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计课程介绍-第13章泛型机制—模板精选
第13章 泛型机制—模板 类模板的定义 类模板的实例化 模板的编译 非类型形参和参数的默认值 类模板的友元 类模板作为基类 类模板的定义 类模板允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数或返回值能取任意数据类型。 定义格式: template class 标识符〉 class 类名{//…}; 类模板实例 定义一个泛型的、可指定下标范围的、安全的数组 类模板定义 template class T class Array { int low; int high; T *storage; public: Array(int lh = 0, int rh = 0): low(lh), high(rh) {storage = new T [high - low + 1]; } Array(const Array arr); Array operator=(const Array a); T operator[](int index); ~Array() {delete [] storage; } }; 类模板的成员函数的定义 类模板的成员函数都是函数模板,模板参数与类模板相同 形式: Template模板形参 返回类型 类模板名形式参数::成员函数名(函数的形参表) {函数体} Array类的成员函数的格式 template class T 返回类型 ArrayT::函数名(形式参数表) {函数体} Array的成员函数的实现 template class T ArrayT ArrayT::operator=(const ArrayT a) { if (this == a) return *this; //防止自己复制自己 delete [] storage; // 归还空间 low = a.low; high = a.high; storage = new T [high - low + 1]; for (int i=0; i = high - low; ++i) storage[i] = a.storage[i]; return *this; } template class T ArrayT::Array(const ArrayT arr) { low = arr.low; high = arr.high; storage = new T [high - low + 1]; for (int i = 0; i high -low + 1; ++i) storage[i] = arr.storage[i]; } template class T T ArrayT::operator[](int index) { if (index low || index high) {cout 下标越界; exit(-1); } return storage[index - low]; } 第13章 泛型机制—模板 类模板的定义 类模板的实例化 模板的编译 非类型形参和参数的默认值 类模板的友元 类模板作为基类 类模板的实例化 编译器从模板生成一个特定的类或函数的过程称为模板的实例化。 类模板实例化后形成一个模板类。 类模板的实例化格式如下: 类模板名模板的实际参数 对象名; 如: Arrayint array1(20,30); Arraydouble array2(10, 20); 模板类的对象的使用 我们可以用下列语句输入array2的值: for (i=10; i=20; ++i) array2[i] = 0.1 * i; 也可以用下列语句输出array1的值: for (i=20; i=30; ++i) cout array1[i] \t; 第13章 泛型机制—模板 类模板的定义 类模板的实例化 模板的编译 非类型形参和参数的默认值 类模板的友元 类模板作为基类 模板的编译 当编译器看到模板的定义时,它不立即产生代码。只有看到用到模板时,如定义类模板的对象时,编译器才产生特定类型的模板实例。 类模板的成员函数本身是模板函数。类模板的成员函数只有在为程序所用时才进行实例化。如果该成员函数从未被使用,则不会实例化该成员函数。 第13章 泛型机制—模板 类模板的定义 类模板的实例化 模板的编译 非类型形参和参数的默认值 类模板的友元 类模板作为基类 非类型形参 模板的形式参数不一定都是类型,也可以是非类型的参数。 在模板实例化时,类型参数用一个系统内置类型的名字
您可能关注的文档
- Aruba_WLAN基础知识培训胶片精选.ppt
- ASIC课程设计-MOS输出级电路设计与Hspice仿真精选.docx
- ASON智能光网络介绍精选.ppt
- ATM承载IP解决方案.精选.ppt
- AutoCAD 2004 PPT电子课件教案-第1章 AutoCAD概述精选.ppt
- AutoCAD 2004 PPT电子课件教案-第2章 二维绘图命令精选.ppt
- AutoCAD 2004 PPT电子课件教案-第4章 辅助绘图命令精选.ppt
- AutoCAD 2004 PPT电子课件教案-第5章对象特性精选.ppt
- AutoCAD 2004 PPT电子课件教案-第6章文字和尺寸标注精选.ppt
- AutoCAD 2004 PPT电子课件教案-第7章块、外部参照和图像附着精选.ppt
最近下载
- 传染病预防控制必修和选修答案-2024年全国疾控系统“大学习”活动.docx VIP
- 高血压的护理查房ppt课件.pptx VIP
- 教学查房输尿管结石【共35张PPT】.pptx VIP
- 弘扬教育家精神争做时代大先生培训心得16篇.docx VIP
- 取芯筒技术规范.pdf
- 2024年新人教版七年级数学上册教学课件 第四章 整式的加减 4.2 整式的加法与减法(第2课时去括号).pptx
- 2024年秋季部编版七年级上册道德与法治第三单元珍爱我们的生命第9课第2课时提高防护能力.pptx VIP
- 《外贸单证(双语)》课程教学大纲(本科).pdf VIP
- 科技文本翻译.ppt
- 2023中小学教师数据素养作业.docx
文档评论(0)