重载分辨率,cpp

overloading resolution, cpp

本文关键字:cpp 分辨率 重载      更新时间:2023-10-16

我明白,如果有几个函数具有相同的名称和相同数量的参数,编译器正试图找到最佳匹配(我是对的吗?)

我不明白的是类型提升和类型转换的区别。

假设我有这个函数声明:void foo (double x)然后在main:

int x = 5;
foo(x);

这是转化还是提升?

类型提升是类型转换的特殊情况。

http://en.wikipedia.org/wiki/Type_conversion Type_promotion

你的例子行不通

你需要有两个方法来重载

1.) void foo(double x){方法代码}和

2.) void foo(int x){方法代码}

然后当你运行代码

int = 5;

foo (5)

编译器或运行时环境根据传入的输入类型知道调用哪个方法。

如果要将int型转换为不同的double型。我不知道你用的是什么语言,但在Java中,你可以使用类型转换

进行转换

这是类型强制转换,将双精度型转换为整型。如果有小数部分,您将丢失。

double d = 5;Int I = (Int)d;

我想这就是你要问的。如果没有,请说明一下