main.cpp
#include<iostream>
#include<typeinfo>
#include<string>
using namespace std;
#include"src\Person.cpp"
//类模板分文件编写以及解决问题
//template<class T1,class T2>
//class Person
//{
//public:
// Person(T1 name,T2 age);
//
// void showPerson();
//
// T1 m_Name;
// T2 m_Age;
//};
//构造函数的类外实现
//template<class T1,class T2>
//Person<T1,T2>::Person(T1 name,T2 age)
//{
// this->m_Name=name;
// this->m_Age=age;
//}
//
成员函数的类外实现
//template<class T1,class T2>
//void Person<T1,T2>::showPerson()
//{
// cout<<"m_Name: " <<this->m_Name<<endl;
// cout<<"m_Age: " <<this->m_Age<<endl;
//}
void test01()
{
Person<string ,int> p("Tom",18);
p.showPerson();
}
int main()
{
test01();
return 0;
}
Person.h —— 类的声明
#pragma once
#include<iostream>
using namespace std;
template<class T1,class T2>
class Person
{
public:
Person(T1 name,T2 age);
void showPerson();
T1 m_Name;
T2 m_Age;
};
src\Person.cpp —— 类中成员函数的实现
#include"Person.h"
//构造函数的类外实现
template<class T1,class T2>
Person<T1,T2>::Person(T1 name,T2 age)
{
this->m_Name=name;
this->m_Age=age;
}
//成员函数的类外实现
template<class T1,class T2>
void Person<T1,T2>::showPerson()
{
cout<<"m_Name: " <<this->m_Name<<endl;
cout<<"m_Age: " <<this->m_Age<<endl;
}