加文

希望是美好的……
随笔 - 0, 文章 - 209, 评论 - 0, 引用 - 0
数据加载中……

函数模板错误解析

#include <iostream>
template <typename T>
inline T const& max(T const& a,T const& b)
{
return a > b ? a : b;
}
int main()
{
std::cout<<max(4,7)<<std::endl; //实例化都是int型。
std::cout<<max(4,4.2)<<std::endl;           //ERROR ,实例化发生歧义,第一个int,第二个是double型
//上面的错误有三个解决方法:
1,对实参进行强制类型转换:
max(static_cast<double>(4),4.2);
2,显示指定类型:
max<double>(4,4.2);
3,指定两个参数可以具有不同的类型
getchar();
return 0;
}

posted on 2012-05-02 12:30 加文 阅读(126) 评论(0)  编辑 收藏 引用 所属分类: C++


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