gpt4 book ai didi

c++ - 重载函数中数据类型的优先级如何?

转载 作者:太空狗 更新时间:2023-10-29 20:12:14 25 4
gpt4 key购买 nike

我重载了 3 个函数。重载函数中数据类型的优先级如何?

#include <iostream>

using namespace std;

void myfunc (int i) {
cout << "int" << endl;
}

void myfunc (double i) {
cout << "double" << endl;
}

void myfunc (float i) {
cout << "float" << endl;
}

int main () {
myfunc(1);
float x = 1.0;
myfunc(x);
myfunc(1.0);
myfunc(15.0);
return 0;
}

输出:

int
float
double
double

程序如何决定调用 float 或 double?

最佳答案

文字具有明确定义的类型。特别是,floating-point literals具有类型 double 除非有后缀。 fF 的后缀使其成为 float 类型的文字,而 l 的后缀L 使其成为 long double 类型的文字。

这解释了观察到的重载决议:

myfunc(x);//calls myfunc(float) since x is a float
myfunc(1.0);//calls myfunc(double) since 1.0 is a double
myfunc(15.0);//calls myfunc(double) since 15.0 is a double

类似的推理适用于 integer literals同样 - 1int 类型的文字。

关于c++ - 重载函数中数据类型的优先级如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28707682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com