- 一,实验内容
- 1. 模板函数(compare)
- 2. 模板类Queue或Stack
- 3. 模板类AutoPtr
- 二,实验过程
- 1.普通函数模板
- 2.特化模板函数
- 3.成员模板函数
- 4. 模板类特化
函数模板:是一种抽象函数定义,它代表一类同构函数
-
一般模板函数
-
特化模板函数
类模板:是一种更高层次的抽象的类定义。当函数模板需要对某些类型进行特化处理,称为函数模板的特化。当类模板内需要对某些类型进行特别处理时,使用类模板的特化。
- 模板类(Queue,Stack)
- 成员模板函数
- 模板特化:模板函数特化、模板成员函数特化、模板类特化
- 构造函数
- 析构函数
- 拷贝构造函数
- 等号、->、*等运算符重载
- 主函数调用AutoPtr
template2.特化模板函数int compare(const T& left, const T& right) { if (right < left) { return 1; } if (left < right) { return -1; } return 0; } compare (1, 2); //使用模板函数
template<>
void func(int i) {
cout << "In special version for int "<< i << endl;
}
int i = 10;
func(i);
3.成员模板函数
- 普通类和类模板的成员函数都可以是一个函数模板,
class Printer {
public:
template
void print(const T& t) {
cout << t <
4. 模板类特化
类模板的特化:与函数模板类似,当类模板内需要对某些类型进行特别处理时,使用类模板的特化。例如:
这里归纳了针对一个模板参数的类模板特化的几种类型
一是特化为绝对类型;
二是特化为引用,指针类型;
三是特化为另外一个类模板。



