单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级第10章 模板 10.1 模板的概念10.2 函数模板 10.3 类模板 10.4 模板应用实例 模板是C支持参数化多态的工具使用模板可以使用户为类或者函数声明一种一般模式使得类中的某些数据成员或者成员函数的参数返回值取得任意类型 10.1 模板的概念所谓模板是一种使用无类型参数来产生一系列函数或类的机
通用容器运算符===>>=<<==方法(函数)迭代方法begin()end()rbegin()rend()访问方法size()max_size()swap()empty()迭代器10容 器14顺序容器——列表19迭代器迭代器相关的辅助函数24
第二次调用abs()时实参为长整型由此推导出函数模板中的参数类型T为长整型函数的返回值为长整型class或typename与T一起说明用户定义的数据类型 在C中不仅可以设计函数模板来满足对不同类型数据的同一功能要求还可以设计类模板来表示具有相同处理方法的数据对象集 void main(){ Num<int> x(58) 声明带参数的对象x cout<<Max:<<()<<M
通用代码:模版由于10为int型所以函数模板实例化为以下真正的函数:int abs(int x){ if(x < 0) return -x return x}再以10为参数调用该函数abs(10) 使用函数模板实例化模板函数有一个特点虽然模板参数T可以实例化成各种类型但是采用模板参数T的各参数之间必须保持完全一致的类型(模板参数并不具有隐式的类型转换功能)对函数模板的说明和定义必须是全
函数模板的定义定义一个类模板的方法为:template <模板参数列表>class 类名{类的成员}在上面的定义中template定义类模板的关键字关键字后面的尖括号里面的是类模板的参数类型列表参数类型用class或者typename这两者都可以用模板参数列表中也可以包含普通的参数类型如:int等class为定义类时的关键字但是类模板却不是类class后面是类模板的名字紧接着是由大括号{}包括起
24模板函数 函数模板(45) 函数模板(55)例子2:使用函数模板实现数组的排序和输出(24)例子2:使用函数模板实现数组的排序和输出(44) 类模板例子2:用类模板实现栈(16)例子2:用类模板实现栈(36)例子2:用类模板实现栈(56)程序执行结果作业
在前面的章节中讨论了函数名的重载问题由于使用函数重载技术使编程显得更为简捷有效且可以对不同类型的数据进行处理但在函数名重载中有一点不便的是必须逐一对所要处理的数据类型进行重载若某一数据类型不在重载函数之内就不能使用重载函数 重载函数就相当于一个函数模板的显式模板函数而定义函数模板的目的就是为了不显式地定义模板函数而由编译系统隐式地完成这样的目的程序运行结果为:函数模板是模板函数
第 9 章 模 板内蒙古科技大学信息学院 函数模板 类模板 类模板静态成员与友元 派生类模板 本章知识点小结2 函数模板普通函数是对某一种数据类型进行操作要完成多种数据类型的操作就要为每种数据类型定义一个函数即函数重载函数模板就是对这一类函数的抽象普通函数只能传递变量参数而函数模板提供了将
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级单击此处编辑母版标题样式单击此处编辑母版
休息 前一页本章主要内容4§ 函数模板§ 函数模板说明编译器从实参类型推导出函数模板的类型参数然后以函数模板为样板生成模板函数对调用 abs( n ) 实参n为 int 型系统将T代换为 int 生成的模板函数为: int abs( int x ) { return x < 0 –x : x }对abs( d ) d为 double型T
违法有害信息,请在下方选择原因提交举报