头文件hpp
#pragma once//防止头文件重复包含
#include<iostream>
#include<string>
using namespace std;
//类模板成员函数类外实现
template<class T1, class T2>
class base {
public:
base(T1 name, T2 age);
void showperson();
T1 m_name;
T2 m_age;
};
template<class T1, class T2>//类外声明要标出<T1,T2> 放在类名后面
base<T1, T2>::base(T1 name, T2 age) {
m_name = name;
m_age = age;
}
template<class T1, class T2>
void base<T1, T2>::showperson() {
cout << "姓名: " << m_name << " 年龄: " << m_age << endl;;
}
源文件cpp
#include<iostream>
#include<string>
using namespace std;
#include"person.hpp"
void test1() {
base<string, int> a("tom", 20);//创建对象时要标明类型
a.showperson();
}
int main() {
test1();
system("pause");
return 0;
}