活着就意味必须要做点什么,请好好努力。
------《地下》
函数模板&类模板
模版是泛型编程的基础, 模版分为 函数模版 和 类模版
函数模板格式:
template <class(或typename) 形参名1, class 形参名2, class 形参名n>
返回类型 函数名(参数列表)
{
...}
模板形参的定义既可以使用class,也可以使用typename,含义是相同的.
//一个简单的函数模板,比较 left 和 right, 与类型无关
template<typename T>
bool IsEqual (const T& left , const T& right )
{
return left == right;
}
void test1 ()
{
string s1 ("s1"), s2("s2" );
IsEqual (s1, s2);
IsEqual (1,1);
}
模板参数匹配及显示实例化
template <typename T>
bool IsEqual (const T& left , const T& right )
{
return left == right;
}
void test1 ()
{
cout<<IsEqual (1,1)<<endl;
//cout<<IsEqual(1,1.2)<<endl; // 模板参数不匹配
cout<<IsEqual<int>(1,1.2)<< endl; // 显示实例化
cout<<IsEqual<double