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++:仅根据函数返回值类型不能实现重载的主要内容,如果未能解决你的问题,请参考以下文章

c++中两个函数函数名相同,参数类型和参数个数也相同,但是函数类型不同,那它们是重载函数吗?

C++里面,为啥重载前++时不返回引用就不能连用?

什么是C++重载?

根据返回值重载一个C++函数

根据返回值重载一个C++函数

c++中重载输出操作符,为啥要返回引用