又有问题了,关于函数重载
不好意思,程序如下,请各问好心人,,help 一下 谢谢,问题:我觉得第二个输出结果不对,可是运行了一下,不知为什么是那样的
#include<iomanip>
using namespace std;
double large(double a, double b);//函数声明
long& large(long &a,long &b););//函数声明
int main()
{cout<<"large of 1.5 and 2.5 is"<<large(1.5,2.5)<<endl;
int value1=35;
int value2=45;
cout<<"large of "<<value1<<"and "<<value2<<"is"<<large(static_cast<long>//将两个参数强制转化为long型
(value2))<<endl;
return 0;
}
double large(double a, double b)
{cout<<"double version";
return a>b ? a:b;}
long& large(long &a,long &b)
{cout<<"long ref cersiong";
return a>b ? a:b;}
输出结果是
double version.large of 1.5 and 2.5 is 2.5
double version.large of 35 and 45 is 45
第二个输出结果应该是执行long& large(long &a,long &b)函数的结果呀,因为已经将两个参数强制转化为long型了,,可是结果怎么还是执行double large(double a, double b)的结果呢?;