学习了
是第3个参数类型不明确的问题
主要是调用中的第3个参数类型不明确使函数调用产生了二义性。系统不知道是该使用int类型转换后调用第一个函数还是调用第2个函数。如果在程序调用中将第3个参数先赋值给一个变量如float f = 3.2.则调用就很明确啦。如下在MinGW下运行良好。#include <iostream>
using namespace std;
int test(int,int,int);
float test(int,int,float=3.5F);
int main()
{
float f = 3.2;
test(1,2,f);
}
int test(int x,int y,int z)
{cout<<"调用的是第一个函数。"<<endl;
return 1;}
float test(int x,int y,float z)
{cout<<"调用的是第二个函数。"<<endl;
return 1.0;}