//mark.hpp
//也就是头文件的引入
#pragma once
template<class NameType,class AgeType>
class mark{
public:
mark(NameType name, AgeType age);
void printMark();
NameType name;
AgeType age;
};
#include<iostream>
template<class NameType, class AgeType>
mark<NameType, AgeType>::mark(NameType name, AgeType age) {
std::cout << "generate function\n";
this->name = name;
this->age = age;
}
template<class NameType, class AgeType>
void mark<NameType, AgeType>::printMark() {
std::cout << "name:" << this->name << "\nage:" << this->age << '\n';
}
接下来就是主函数所在的文件
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<numeric>
#include "mark.hpp"
/*
1.调用类模版时,要进行第二次编译,要把泛型的数据类型替换为具体的类型,
这时需要知道函数体,但是函数的实现在.cpp中,那么调用类模版的.cpp没有引入实现:cpp,
只引入.h,所以报错
2.解决方法:把成员函数放到.h中,然后把.h改为.hpp,然后在调用成员函数的地方,引入.hpp
*/
int main() {
mark<std::string, int> m("123123", 200);
return 0;
}