关于c++:C仅根据函数返回值类型不能实现重载

7次阅读

共计 424 个字符,预计需要花费 2 分钟才能阅读完成。

函数的两个因素:参数与返回值。

如果同名函数的参数不同(包含类型、程序不同),那么容易区别出它们是不同的函数。

如果同名函数仅仅是返回值类型不同,有时能够辨别,有时却不能。例如:

void Function(void);
int Function (void);

上述两个函数,第一个没有返回值,第二个的返回值是 int 类型。如果这样调用函数:
int x = Function ();

则能够判断出 Function 是第二个函数。问题是在 C ++/C 程序中,咱们能够疏忽函数的返回值。在这种状况下,编译器和程序员都不晓得哪个 Function 函数被调用。
所以只能靠参数而不能靠返回值类型的不同来辨别重载函数。编译器依据参数为每个重载函数产生不同的外部标识符。

void Function(void)
{};
int Function(void)
{};

注:仅仅依据函数返回值不能重载函数,仅能依据不同的形参列表,包含参数个数和类型;
仅仅依据参数返回类型编译器会收回谬误正告,在编译期间就提醒谬误

正文完
 0