![]() |
#2
xufen3402009-08-27 15:05
|
1.自动转化
#include<iostream>
using std::cout;
using std::endl;
int const& max(int const& a,int const& b)
{
return a<b?b:a;
}
int main()
{
cout<<max('a',42)<<endl;
return 0;
}
2.函数重载后,编译出错,没有调用非模板函数,还是调用模板。
#include<iostream>
using std::cout;
using std::endl;
inline int const& max(int const& a,int const& b)
{
return a<b?b:a;
}
template<typename T>
inline T const& max(T const& a,T const& b)
{
return a<b?b:a;
}
int main()
{
cout<<::max('a',42)<<endl;
return 0;
}
编译出错,参数不确定。
所以,函数模板支持重载,但重载后vc6不支持非函数模板自动转换了。