C++ 泛型编程基础——类模板
简介
一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默认成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。
如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。
示例
#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T>
class hand
{
public:
void set(T x){a = x;}
T get(){return a;}
protected:
private:
T a;
};
#define Handle(Class) hand<Class>
int _tmain(int argc, _TCHAR* argv[])
{
Handle(int) a;
a.set(4);
Handle(double) b;
b.set(3.5);
cout<<a.get()<<endl<<b.get()<<endl;
return 0;
}