1、声明和实现都现在头文件里
在编译阶段编译器是不会对模板做处理的,因为它不知道模板参数是什么。
在链接阶段,链接器会寻找模板实例的实现,如果模板实现放在cpp中,由于上一步编译阶段不做任何处理,因而在链接阶段是找不到实现的,如果模板实现放在h中,由于和模板实例在同一个文件中因而能找到实现。
2、使用
//模板函数
template<class T>
int myAddT(T a, T b)
{
return a + b;
}
myAddT<int>(a, c)
1、声明和实现都现在头文件里
在编译阶段编译器是不会对模板做处理的,因为它不知道模板参数是什么。
在链接阶段,链接器会寻找模板实例的实现,如果模板实现放在cpp中,由于上一步编译阶段不做任何处理,因而在链接阶段是找不到实现的,如果模板实现放在h中,由于和模板实例在同一个文件中因而能找到实现。
2、使用
//模板函数
template<class T>
int myAddT(T a, T b)
{
return a + b;
}
myAddT<int>(a, c)