下面的代码有问题吗?一直编译通不过。
请帮忙看下下面的代码哪里错了,我是用了函数模板,运行的时候一直报警:对重载函数的调用不明确。
#include<iostream>
using namespace std;
#include"min函数模板.h"
int main()
{
int int1, int2;
cout << "Enter two int number: " << endl;
cin >> int1 >> int2;
cout << min ( int1, int2 );
double double1, double2;
cout << "Enter two double number: " << endl;
cin >> double1 >> double2;
cout << min ( double1, double2 );
char char1, char2;
cout << "Enter two char number: " << endl;
cin >> char1 >> char2;
cout << min ( char1, char2 );
return 0;
}
//下面的min函数模板写在头文件里面的!
template < typename T >
T min ( T number1, T number2 )
{
T minimum = number1;
if ( number2 < minimum )
minimum = number2;
return minimum;
} 其实我也是一知半解,就感觉是这样的,嘿嘿。
[解决办法]
并不需要加引用符号&,因为你只是要求最小值而已,并不是要进行换序等改变参数的操作;至于为何会编译不通过,我还没找出原因。
[解决办法]
你的代码一共有三部分(是那三部分就不用我说了吧?),你可以进行注释,一部分一部分地编译运行——这个是常见的方法。我猜那个char类型是没有<运算的吧。
[解决办法]
文件名搞个英文或拼音的也好啊,搞个汉字有点不习惯....
[解决办法]
代码没错,函数名换一个,不要跟全局的同名