类模板中的成员函数在类外实现。
通常情况:类内实现。
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; }
有两个地方要注意:
总结:类模板的成员函数类外实现时,需要加上类模板参数列表。