返回信息流#include "stdafx.h"
#include <iostream.h>
int absolute(int x)
{
return (x<0?-x:x);
}
double absolute(double x)
{
return (x<0?-x:x);
}
int min(int a,int b)
{
return (a<b?a:b);
}
int min(int a,int b,int c)
{
int temp=(a<b?a:b);
return (temp<c?temp:c);
}
int main(int argc, char* argv[])
{
int m=10,n=10,k=-10;
double d =-3.389;
cout<<absolute(k)<<endl;
cout<<absolute(d)<<endl;
cout<<min(m,n)<<endl;
cout<<min(m,n,k)<<endl;
return 0;
}
以上是正确的。如果在这个函数里面
double absolute(double x){ ……}把double都改成改成float
这样会报错,这是为什么?
这是一条镜像帖。来源:北邮人论坛 / cpp / #44085同步于 2010/9/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
一个简单的函数重载
andrew219219
2010/9/18镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
因为你现在重载了absolute()函数,而你现在传入的是double型数据,编译器就不知道调用调用哪一个函数
你可以加一个类型转换cout<<absolute(static_cast<float>(d))<<endl就可以了