关于函数模板的学习
#include<iostream>
#include<string.h>
using namespace std;
/*
template<typename T> //T可以表示为任意类型,参数类型和返回类型都可以表示为T
void nametest()
{
//函数体
}
*/
//例如这里使用比较两个相同类型的变量的函数
/*
//原本来说 比如比较两个函数是否相等,我会利用重载 例如:
bool isEqual(int i, int j)
{
return i == j;
}//代表int类型
bool isEqual(float i, float j)
{
return i == j;
}//代表float类型
*/
//但利用函数模板就应该是
template<typename T>
bool isEqual(T i, T j) //这样的话,T就会根据所调用isEqual函数的参数类型进行适应
{
return i == j;
}
//但同时如果遇到有字符指针这样的类型就无法使用常用的类型,此时就需要用到特化
template<>
bool isEqual<char*>(char* s1, char* s2) //函数类型 函数名<特化的类型>(特化类型 名,特化类型 名)
{
return strcmp(s1, s2) == 0; //比较char类型
}