#include<iostream>
#include<string>
using namespace std;
//template<class T1,class T2>
//class Person;
template<class T1,class T2>
class Person
{
template<class T1,class T2>
friend void printPerson(Person<T1, T2>& p);
public:
Person (T1 name, T2 age)
{
this->m_name = name;
this->m_age = age;
}
private:
T1 m_name;
T2 m_age;
};
template<class T1, class T2>
void printPerson(Person<T1, T2>& p)
{
cout << "name: " << p.m_name << "age: " << p.m_age << endl;
}
void test01()
{
Person<string, int> p1("Tom ", 30);
printPerson(p1);
}
int main()
{
test01();
system("pause");
return 0;
}