具体定义使用如下代码:
#include<iostream>
using namespace std;
//模板函数
template<class T>
void myPrint(T& a) {
cout << a << endl;
}
//模板类
template<class T1>
class Number
{
public:
//构造函数模板
template<class T3>
Number(T3 a,T3 b);
~Number();
//成员函数模板
template<class T2>
T2 add(T2 a, T2 b);
private:
};
//构造函数也可以是一个成员模板函数
template<class T1>
template<class T3>
Number<T1>::Number(T3 a, T3 b)
{
}
template<class T1>
Number<T1>::~Number()
{
}
//先跟类模板参数列表,在跟函数自己模板参数列表
template<class T1>
template<class T2>
T2 Number<T1>::add(T2 a, T2 b) {
retrun a + b;
}
int main() {
//类模板参数必须用<>指定
//函数(成员函数)模板会根据实参类型子弟哦那个推导
Number<int> a(4, 6);
a.add(7, 8);
return 0;
}