1 / 11
文档名称:

第15章模板的使用(课本的第20章).ppt

格式:ppt   页数:11
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第15章模板的使用(课本的第20章).ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

第15章模板的使用(课本的第20章).ppt

文档介绍

文档介绍:模板
模板与使用
模板就是使程序能够对不同类型的数据进行相同方式的处理。C++中的模板分为类模板和函数模板。
类模板
说明类模板的一般格式为:
template <类型参数表> class 类模板名
{ private:
私有成员定义
protected:
保护成员定义
public:
公有成员定义};
模板与使用
其中:(1)类型形式参数表可以包含基本数据类型,也可以包含类类型,如果是类类型,则须加前缀class。当参数有多个时,需用逗号隔开。
(2)类模板中的成员函数的定义,可以放在类模板的定义体中(此时与类中的成员函数的定义方法一致),也可以放在类模板的外部定义成员函数,此时成员函数的定义格式如下:
template <类型形式参数表>
函数值的返回类型类模板名<类型名表>::成员函数(形参) { 函数体}
其中:类模板名即是类模板中定义的名称;类型名表即是类模板定义中的类型形式参数表中的参数名。
模板与使用
(3)利用类模板定义的只是对类的描述,它本身还不是一个实实在在的类。因此是类模板。
(4)要定义类模板的对象(即实例),需要用下列格式的语句:
类模板名<类型实际参数表> 对象名;
【例】定义类模板ABC,内含成员函数set和get。用ABC生成对象abc1和abc2。它们的数组元素数不同,显示的结果也不同。
# include <>
// 定义类模板ABC
template <class T, int I> class ABC
{ private:
T array [I] ; // 定义数组array
模板与使用
public:
void set (int x) // 定义成员函数set
{ int i;
for (i=0; i<I; i++) //循环I次
array[i]=x+i; //数组元素赋值
}
void get () //定义成员函数get
{ cout <<"\n 数组元素总数为:"<< I<<endl;
cout <<" array["<<I-1<<"]="<<array[I-1]<<endl; }
};
void main()
{ //由模板ABC生成对象abc1
模板与使用
ABC <int,50> abc1;
(0); //
(); //
//由模板ABC生成对象abc2
ABC <int,100> abc2;
(10); //
(); //
}
以下是对上例中的成员函数定义体放于类模板外部定义的示例。
【例】定义模板ABC,内含成员函数set和get。用ABC生成对象abc1和abc2。它们的数组元素数不同,显示的结果也不同。
模板与使用
#include <>
// 定义类模板ABC
template <class T, int I> class ABC
{ private:
T array [I] ; // 定义数组array
public:
void set (int x); // 定义成员函数set
void get () ; //定义成员函数get
};
template <class T,int i>
void ABC<T,i> ::set (int x) // 定义成员函数set
{ int i;
模板与使用
for (i=0; i<I; i++) //循环I次
{ array[i]=x+i; } //数组元素赋值
}
template <class T,int i>
void ABC<T,i>::get()
{ cout <<"\n 数组元素总数为:"<< I<<endl;
cout <<" array["<<I-1<<"]="<<array[I-1]<<endl; }
void main()
{ //由模板ABC生成对象abc1
ABC <int,50> abc1;
(0); //
(); //
模板与使用
//由模板ABC生成对象abc2
ABC <int,100> abc2;
(10); //
(); //
}
类模板的使用方法可以总结为:
(1) 给出类模板的定义体。
(2)在适当的位置创建一个类模板的实例,即一个实实在在的类定义,同时创建该模板类的对象。
(3)有了对象名,以后的使用就和普通类的

最近更新

2024年吉安幼儿师范高等专科学校单招职业技能.. 41页

2024年吉林司法警官职业学院单招职业倾向性测.. 40页

2024年吉林水利电力职业学院单招职业技能考试.. 40页

2024年吉林省四平市单招职业适应性测试模拟测.. 40页

2024年吉林省白山市单招职业倾向性考试模拟测.. 40页

2024年吉林职业技术学院单招职业技能测试模拟.. 39页

高频高速电路设计技术 37页

2024年吕梁职业技术学院单招综合素质考试模拟.. 38页

2024年呼和浩特职业学院单招职业适应性测试模.. 40页

2026年优秀护士先进事迹材料 38页

2026年优秀少先队员先进事迹材料范文 27页

钢轨损伤机理分析 36页

2024年哈尔滨铁道职业技术学院单招职业倾向性.. 41页

2026年优秀六年级写事作文 22页

2024年唐山科技职业技术学院单招职业技能考试.. 40页

2024年商丘学院单招职业适应性测试模拟测试卷.. 41页

肝肿瘤超声弹性成像技术优化 36页

2026年优秀三分钟演讲稿主题 11页

肝脂肪变性与炎症因子变化 36页

2024年四川国际标榜职业学院单招职业倾向性考.. 40页

2024年四川工业科技学院单招职业技能测试模拟.. 41页

2026年企业车队队长年终个人工作总结 9页

2024年四川托普信息技术职业学院单招职业技能.. 39页

2024年四川文化产业职业学院单招职业适应性考.. 41页

2024年四川水利职业技术学院单招职业技能测试.. 41页

2024年四川现代职业学院单招职业技能考试模拟.. 41页

网络攻击行为的深度学习分析-第1篇 40页

2024年四川航天职业技术学院单招职业技能测试.. 40页

绿色交通规划与实施-第1篇 37页

肿瘤微环境中微生物群落的表型特征分析 29页