1.为什么需要类模板
类模板与函数模板的定义和使用类似,有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,我们可以通过如下面语句声明了一个类模板:
#include <iostream>
#include <Windows.h>
using namespace std;
template <typename T>
class Demo {
public:
Demo(T a) { this->a = a; } //构造函数的参数使用类模板
T getA()const { return a; } //函数返回值使用类模板
private:
T a; //成员变量使用类模板
};
//使用类作为函数形参时, 必须显示指定类型
void printDemo(const Demo<int> demo) {
cout << demo.getA() << endl;
}
int main(void) {
//类模板定义必须显示指定类型!!!
Demo<int> demo(666);
printDemo(demo);
system("pause");
return 0;
}
- 类模板用于实现类所需数据的类型参数化
- 类模板在表示支持多种数据结构显得特别重要,这些数据结构的表示和算法不受所包含的元素类型的影响
2.类模板定义
- 类模板由模板说明和类说明构成
- 模板说明同函数模板,如下:
template <类型形式参数表>
类声明
例如:
template <typename Type>
class ClassName {
//ClassName 的成员函数
private :
Type DataMember;
}