类模板中的成员函数在类外实现。
通常情况:类内实现。
template<typename T1, typename T2>
class Person
{
public:
Person(T1 name, T2 age)
{
this->m_Name = name;
this->m_Age = age;
}
void showPerson()
{
cout << "姓名:" << this->m_Name << ", 年龄:" << this->m_Age << endl;
}
private:
T1 m_Name;
T2 m_Age;
};
类内声明;类外实现:
template<typename T1, typename T2>
class Person
{
public:
Person(T1 name, T2 age);
void showPerson();
private:
T1 m_Name;
T2 m_Age;
};
// 构造函数类外实现。
template<typename T1, typename T2>
Person<T1, T2>::Person(T1 name, T2 age)
{
this->m_Name = name;
this->m_Age = age;
}
// 普通成员函数类外实现。
template<typename T1, typename T2>
void Person<T1, T2>::showPerson()
{
cout << "姓名:" << this->m_Name << ", 年龄:" << this->m_Age << endl;
}
有两个地方要注意:
总结:类模板的成员函数类外实现时,需要加上类模板参数列表。