需要解决的问题:
类模板中成员函数创建的时机是在调用阶段,导致分文件编写时会链接不到
解决方法:
直接包含.cpp源文件
将声明和实现写在同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制
.hpp文件
#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;
};
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 << "姓名:" << this->m_Name << " 年龄:" << this->m_Age << endl;
}
.cpp文件
#include<iostream>
using namespace std;
#include<string>
//第一种解决方法:直接包含源文件
//#include "person.cpp"
//第二种解决方法:将.h和.cpp的内容写到一起,将后