函数重载C ++指针

用户名

我知道,如果参数数量不同或参数类型不同,则函数的重载是合法的。

为什么仅返回类型的差异是不合法的?

同样,这样重载是否合法:

int hello(int x);
int hello(int &z);

int hi(int x);
int hi(int *z);
Ben

编译器无法仅通过返回值来确定要尝试调用的函数。由于不需要捕获返回值,因此您可以编写:

hello( 1 ); // return int
hello( 2 ); // return float

从可见的角度来看,它们是完全相同的调用。

是的,这是合法的,因为第一个hi引用了一个引用,第二个hi引用了一个内存地址。您可以这样称呼它:

hi( myNumber );
hi( &myNumber );

完全可区分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章