不理解我这个代码里, Person(T1 name,T2 age) 构造函数和查看信息函数 showPerson() 在类外实现的时候每个函数都又定义了一个T1和一个T2,可是这两个类型最后都没有明确是什么,为什么这样还能运行呢,初学,有点不明白。
#include<iostream>
#include<string>
using namespace std
template<typename T1,typename T2>
class Person
{
public:
Person(T1 name, T2 age);
/*{
this->m_Name = name;
this->m_Age = age;
}*/
void showPerson();
/*{
cout << "Name:" << m_Name << endl;
cout << "Age:" << m_Age << endl;
}*/
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 << "name:" << m_Name << endl;
cout << "age:" << m_Age << endl;
}
void test01()
{
Person<string, int> per1("张三",100);
per1.showPerson();
}
int main()
{
test01();
system("pause");
return 0;
}