2013-09-21 34 views
0

我打电话查找分钟出两个值 的代码是一个模板:调用一个重载函数,而调用模板

#include<iostream> 
#include <cstdlib> 

using namespace std; 

template<class T> 
T min(T a,T b) 
{ 
    return (a<b)?a:b; 
} 


int main(int argc, char** argv) { 
int d,y; 
std::cout<<"enter two integer values"; 
std::cin>>d>>y; 
cout<<"you entered"<<d<<y; 
std::cout<<"the minimum of the two is "<<min(d,y); 
float p,q; 
std::cout<<"enter float values"; 
std::cin>>p>>q; 
cout<<"you entered"<<p<<q; 
std::cout<<"the minimum of the float values is "<<min(p,q); 
char w,a; 
std::cout<<"enter the two characters"; 
std::cin>>w>>a; 
cout<<"you entered"<<w<<a; 
std::cout<<"the minimum of the two characters is "<<min(w,a); 
return 0; 

}

它说,调用的ovrloaded功能不明确

+0

你知道存在std :: min吗? – billz

+0

更具体地说,'template < class T > const T&std :: min(const T&a,const T&b)'。 – iavr

回答

1

删除

using namespace std; 

因为在STD另一个分钟()函数。

0

使用::min(d,y)表示您引用全局名称空间中的函数。