xyjzsh

通过函数参数的类型推导模板版本

模板函数如下:
template<class T>
T max(T x, T y)
{
   return x>y ? x:y;
}

void testMax(void)
{
    max(1,2);//因为两个参数都是int型,所以编译器会根据参数而推导出使用max<int>这个版本
    max(1.2,3.4);//通过两个参数都为double型,推导出使用max<double>这个版本
    max('a',12);//会出现编译错误,因为两个参数,一个为char ,另一个为int ,所以编译器无法根据类型推导出使用哪一个版本
    //可以通过显示的制定使用哪个版本,从而解决这个问题
    max<int>('a',12);
}

posted on 2011-02-23 11:13 呆人 阅读(448) 评论(0)  编辑 收藏 引用 所属分类: STL学习系列


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年2月>
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜