活着就意味必须要做点什么,请好好努力。
------《地下》
函数模板&类模板
模版是泛型编程的基础, 模版分为 函数模版 和 类模版
函数模板格式:
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<

本文介绍了C++中的模板基础,包括函数模板和类模板的格式与应用,强调了非类型模板参数和模板的模板参数在实现容器适配器中的作用。同时探讨了C++中typename和class的区别,尤其是在处理嵌套依赖类型时的作用。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



