C++:仅根据函数返回值类型不能实现重载
Posted 滔滔就是我hia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++:仅根据函数返回值类型不能实现重载相关的知识,希望对你有一定的参考价值。
函数的两个要素:参数与返回值。
如果同名函数的参数不同(包括类型、顺序不同),那么容易区别出它们是不同的函数。
如果同名函数仅仅是返回值类型不同,有时可以区分,有时却不能。例如:
void Function(void);
int Function (void);
上述两个函数,第一个没有返回值,第二个的返回值是int 类型。如果这样调用函数:
int x = Function ();
则可以判断出Function 是第二个函数。问题是在C++/C 程序中,我们可以忽略函数的返回值。在这种情况下,编译器和程序员都不知道哪个Function 函数被调用。
所以只能靠参数而不能靠返回值类型的不同来区分重载函数。编译器根据参数为每个重载函数产生不同的内部标识符。
void Function(void)
{};
int Function(void)
{};
注:仅仅根据函数返回值不能重载函数,仅能根据不同的形参列表,包括参数个数和类型;
仅仅根据参数返回类型编译器会发出错误警告,在编译时期就提示错误
以上是关于C++:仅根据函数返回值类型不能实现重载的主要内容,如果未能解决你的问题,请参考以下文章