函数模板:是通用的函数描述。
函数模板应用需求:同一种任务 用于 不同数据类型 的情况下。
关键字: template 声明创建模板。
typename 和 class 等价 用来声明模板类型。
AnyType 表示类型名称 习惯中写成 T
#include <iostream>
#include <sstream>
using namespace std;
template <typename AnyType>
string ToString(const AnyType & i)
{
string strValue ;
std::stringstream stream;
stream << i;
stream >> strValue;
return strValue;
}
int main() {
int m = 70;
std::cout<<ToString(m)<<std::endl;
float n = 70.5;
std::cout<<ToString(n)<<std::endl;
return 0;
}
重载模板 :同重载函数一样
#include <iostream>
#include <sstream>
using namespace std;
template <typename AnyType>
string ToString(const AnyType & i)
{
string strValue ;
std::stringstream stream;
stream << i;
stream >> strValue;
return strValue;
}
template <typename AnyType>
string ToString(const AnyType & i,const string & strPlus )
{
string strValue ;
std::stringstream stream;
stream << i;
stream >> strValue;
strValue += strPlus;
return strValue;
}
int main() {
int m = 70;
std::cout<<ToString(m)<<std::endl;
float n = 70.5;
std::cout<<ToString(n)<<std::endl;
string strm("sfe1012");
std::cout<<ToString(m,strm)<<std::endl;
return 0;
}