template <类型参数表>
class 类模板名{
成员函数和成员变量
};
class类塑参数1, class类型参数2, ...
类模板中的成员函数放到类模板定义外面写时的语法如下:
template <类型参数表>
返回值类型 类模板名<类型参数名列表>::成员函数名(参数表)
{
...
}
类模板名<真实类型参数表> 对象名(构造函数实际参数表);
如果类模板有无参构造函数,那么也可以使用如下写法:类模板名 <真实类型参数表> 对象名;
类模板看上去很像一个类。下面以 Pair 类模板为例来说明类模板的写法和用法。#include <iostream> #include <string> using namespace std; template <class T1,class T2> class Pair { public: T1 key; //关键字 T2 value; //值 Pair(T1 k,T2 v):key(k),value(v) { }; bool operator < (const Pair<T1,T2> & p) const; }; template<class T1,class T2> bool Pair<T1,T2>::operator < (const Pair<T1,T2> & p) const //Pair的成员函数 operator < { //"小"的意思就是关键字小 return key < p.key; } int main() { Pair<string,int> student("Tom",19); //实例化出一个类 Pair<string,int> cout << student.key << " " << student.value; return 0; }程序的输出结果是:
类模板名 <真实类型参数表>
就成为一个具体的类的名字。#include <iostream> using namespace std; template <class T> class A { public: template <class T2> void Func(T2 t) { cout << t; } //成员函数模板 }; int main() { A<int> a; a.Func('K'); //成员函数模板Func被实例化 a.Func("hello"); return 0; }程序的输出结果是:
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有