1,成员函数在类模版的类内定义
最基本的一种
template<typename P,typename H>
class person
{
public:
person()
{
}
person(P name, H age)
{
this->name = name;
this->age=age;
}
P name;
H age;
};
void test()
{
person <string, int>ph("aa", 18);
cout << ph.age << endl;
cout << ph.name<< endl;
}
int main()
{
test();
}
2,成员函数在类模版的类外定义
template<typename P,typename H>
class person
{
public:
person()
{
}
person(P, H);
P name;
H age;
};
template<typename P, typename H>
person<P, H>::person(P name, H age)
{
this->name = name;
this->age = age;
}
void test()
{
person <string, int>ph("aa", 18);
cout << ph.age << endl;
cout << ph.name<< endl;
}
int main()
{
test();
}
类外定义必须加上template<typename 数据类型>,这是类模版的语法。且必须在·::前加上模版参数。
template<typename P,typename H>
class person
{
public:
person()
{
}
person(P, H);
P name;
H age;
};
template<typename T1, typename T2>
person<T1, T2>::person(T1 name, T2 age)
{
this->name = name;
this->age = age;
}
void test()
{
person <string, int>ph("aa", 18);
cout << ph.age << endl;
cout << ph.name<< endl;
}
int main()
{
test();
}
把P换成T1,把H换成T2.下面都要换。所以可以理解为成员函数为模版函数。