欢迎来到天天文库
浏览记录
ID:58677036
大小:1.62 MB
页数:93页
时间:2020-10-05
《第六讲 函数模板与类模板ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六讲函数模板与类模板函数模板与类模板函数模板类模板动态数组类模板链表类模板栈类模板队列类模板综合实例模板的实例化机制模板的特化模板元编程简介函数模板概述函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计定义方法:template<模板参数表>函数定义模板参数表的内容类型参数:class(或typename)标识符常量参数:类型说明符标识符模板参数:template<参数表>class标识符函数模板函数模板实例函数模板#includeusingna
2、mespacestd;templateTabs(Tx){returnx<0?-x:x;}intmain(){intn=-5;doubled=-5.5;cout<3、一个函数:intabs(intx){returnx<0?–x:x;}函数模板函数模板的示例函数模板#includeusingnamespacestd;template//定义函数模板voidoutputArray(constT*array,intcount){for(inti=0;i4、8,C_COUNT=20;inta[A_COUNT]={1,2,3,4,5,6,7,8};//定义int数组doubleb[B_COUNT]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8};//定义double数组charc[C_COUNT]="Welcometoseeyou!";//定义char数组cout<<"aarraycontains:"<5、utArray(b,B_COUNT);//调用函数模板cout<<"carraycontains:"<6、模板的特化模板元编程简介类模板概述类模板的作用使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型和用户自定义类型)类模板类模板的声明类模板:template<模板参数表>class类模板名{类成员声明}如果需要在类模板以外定义其成员函数,则要采用以下的形式:template<模板参数表>类型名类模板名<模板参数标识符列表>::函数名(参数表)类模板与函数模板中的“模板参数表”完全一样类模板应用举例类模板#include7、ream>#includeusingnamespacestd;//结构体StudentstructStudent{intid;//学号floatgpa;//平均分};类模板应用举例类模板//类模板:实现对任意类型数据进行存取templateclassStore{private:Titem;//item用于存放任意类型的数据boolhaveValue;//haveValue标记item是否已被存入内容public:Store();//缺省形式(无形参)的构造函数T&getEl8、em();//提取数据函数voidputElem(constT&x);//存入数据函数};//以下实现各成员函数。template//缺省构造函数的实现Store::Store():haveValue(false){}Store表示类型参数实例化之后的Store模板,相当于类名。类模板应用举例类模板template//提取数据函数的实现T&Store::getEl
3、一个函数:intabs(intx){returnx<0?–x:x;}函数模板函数模板的示例函数模板#includeusingnamespacestd;template//定义函数模板voidoutputArray(constT*array,intcount){for(inti=0;i4、8,C_COUNT=20;inta[A_COUNT]={1,2,3,4,5,6,7,8};//定义int数组doubleb[B_COUNT]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8};//定义double数组charc[C_COUNT]="Welcometoseeyou!";//定义char数组cout<<"aarraycontains:"<5、utArray(b,B_COUNT);//调用函数模板cout<<"carraycontains:"<6、模板的特化模板元编程简介类模板概述类模板的作用使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型和用户自定义类型)类模板类模板的声明类模板:template<模板参数表>class类模板名{类成员声明}如果需要在类模板以外定义其成员函数,则要采用以下的形式:template<模板参数表>类型名类模板名<模板参数标识符列表>::函数名(参数表)类模板与函数模板中的“模板参数表”完全一样类模板应用举例类模板#include7、ream>#includeusingnamespacestd;//结构体StudentstructStudent{intid;//学号floatgpa;//平均分};类模板应用举例类模板//类模板:实现对任意类型数据进行存取templateclassStore{private:Titem;//item用于存放任意类型的数据boolhaveValue;//haveValue标记item是否已被存入内容public:Store();//缺省形式(无形参)的构造函数T&getEl8、em();//提取数据函数voidputElem(constT&x);//存入数据函数};//以下实现各成员函数。template//缺省构造函数的实现Store::Store():haveValue(false){}Store表示类型参数实例化之后的Store模板,相当于类名。类模板应用举例类模板template//提取数据函数的实现T&Store::getEl
4、8,C_COUNT=20;inta[A_COUNT]={1,2,3,4,5,6,7,8};//定义int数组doubleb[B_COUNT]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8};//定义double数组charc[C_COUNT]="Welcometoseeyou!";//定义char数组cout<<"aarraycontains:"<5、utArray(b,B_COUNT);//调用函数模板cout<<"carraycontains:"<6、模板的特化模板元编程简介类模板概述类模板的作用使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型和用户自定义类型)类模板类模板的声明类模板:template<模板参数表>class类模板名{类成员声明}如果需要在类模板以外定义其成员函数,则要采用以下的形式:template<模板参数表>类型名类模板名<模板参数标识符列表>::函数名(参数表)类模板与函数模板中的“模板参数表”完全一样类模板应用举例类模板#include7、ream>#includeusingnamespacestd;//结构体StudentstructStudent{intid;//学号floatgpa;//平均分};类模板应用举例类模板//类模板:实现对任意类型数据进行存取templateclassStore{private:Titem;//item用于存放任意类型的数据boolhaveValue;//haveValue标记item是否已被存入内容public:Store();//缺省形式(无形参)的构造函数T&getEl8、em();//提取数据函数voidputElem(constT&x);//存入数据函数};//以下实现各成员函数。template//缺省构造函数的实现Store::Store():haveValue(false){}Store表示类型参数实例化之后的Store模板,相当于类名。类模板应用举例类模板template//提取数据函数的实现T&Store::getEl
5、utArray(b,B_COUNT);//调用函数模板cout<<"carraycontains:"<6、模板的特化模板元编程简介类模板概述类模板的作用使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型和用户自定义类型)类模板类模板的声明类模板:template<模板参数表>class类模板名{类成员声明}如果需要在类模板以外定义其成员函数,则要采用以下的形式:template<模板参数表>类型名类模板名<模板参数标识符列表>::函数名(参数表)类模板与函数模板中的“模板参数表”完全一样类模板应用举例类模板#include7、ream>#includeusingnamespacestd;//结构体StudentstructStudent{intid;//学号floatgpa;//平均分};类模板应用举例类模板//类模板:实现对任意类型数据进行存取templateclassStore{private:Titem;//item用于存放任意类型的数据boolhaveValue;//haveValue标记item是否已被存入内容public:Store();//缺省形式(无形参)的构造函数T&getEl8、em();//提取数据函数voidputElem(constT&x);//存入数据函数};//以下实现各成员函数。template//缺省构造函数的实现Store::Store():haveValue(false){}Store表示类型参数实例化之后的Store模板,相当于类名。类模板应用举例类模板template//提取数据函数的实现T&Store::getEl
6、模板的特化模板元编程简介类模板概述类模板的作用使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型(包括基本类型和用户自定义类型)类模板类模板的声明类模板:template<模板参数表>class类模板名{类成员声明}如果需要在类模板以外定义其成员函数,则要采用以下的形式:template<模板参数表>类型名类模板名<模板参数标识符列表>::函数名(参数表)类模板与函数模板中的“模板参数表”完全一样类模板应用举例类模板#include7、ream>#includeusingnamespacestd;//结构体StudentstructStudent{intid;//学号floatgpa;//平均分};类模板应用举例类模板//类模板:实现对任意类型数据进行存取templateclassStore{private:Titem;//item用于存放任意类型的数据boolhaveValue;//haveValue标记item是否已被存入内容public:Store();//缺省形式(无形参)的构造函数T&getEl8、em();//提取数据函数voidputElem(constT&x);//存入数据函数};//以下实现各成员函数。template//缺省构造函数的实现Store::Store():haveValue(false){}Store表示类型参数实例化之后的Store模板,相当于类名。类模板应用举例类模板template//提取数据函数的实现T&Store::getEl
7、ream>#includeusingnamespacestd;//结构体StudentstructStudent{intid;//学号floatgpa;//平均分};类模板应用举例类模板//类模板:实现对任意类型数据进行存取templateclassStore{private:Titem;//item用于存放任意类型的数据boolhaveValue;//haveValue标记item是否已被存入内容public:Store();//缺省形式(无形参)的构造函数T&getEl
8、em();//提取数据函数voidputElem(constT&x);//存入数据函数};//以下实现各成员函数。template//缺省构造函数的实现Store::Store():haveValue(false){}Store表示类型参数实例化之后的Store模板,相当于类名。类模板应用举例类模板template//提取数据函数的实现T&Store::getEl
此文档下载收益归作者所有