我有一个重载函数,它可以接受两种参数类型:int
和 double
。当我用可以返回 int
或 double
的三元计算它时,它总是使用 double
版本。这是为什么?
#include<iostream>
using namespace std;
void f(int a)
{
cout << "int" << endl;
}
void f(double a)
{
cout << "double" << endl;
}
int main()
{
string a;
cin >> a;
f(a=="int" ? 3 : 3.14159);
return 0;
}
最佳答案
三元运算符总是进行类型提升(转换为单一类型)。因此,如果一个结果是 int 而另一个是 double,结果 ?运算符将始终为 double。
关于c++ - 用三元计算的重载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27651159/