【发布时间】:2018-03-23 17:24:23
【问题描述】:
我正在尝试在 C++ 中创建一个简单(绝对)函数,我创建了两个同名函数,一个接受整数并返回整数,另一个接受浮点数并返回浮点数,但每次我尝试运行我收到此错误的代码:
“错误:重载'absolute(double)'的调用不明确”
我尝试更改第二个函数的输入参数,使其接受一个双精度并返回一个浮点数并且代码运行完美,我想知道为什么当参数和返回类型为 都设置为浮动,谢谢。
#include <iostream>
#include <fstream>
using namespace std;
int absolute(int x){
if (x<0){
x=-x;
}
return x;
}
float absolute (float x)
{
if (x<0){
x=-x;
}
return x;
}
int main( )
{
cout << absolute(3.5);
}
【问题讨论】:
-
最好使用
double而不是float。
标签: c++ function c++11 overloading