void function(void);
int function (void);
上述两个函数,第一个没有返回值,第二个的返回值是int类型。如果这样调用函数:
int x = function ();
则可以判断出function是第二个函数。问题是在c++/c程序中,我们可以忽略函数的返回值。在这种情况下,编译器和程序员都不知道哪个function函数被调用。
所以只能靠参数而不能靠返回值类型的不同来区分重载函数。编译器根据参数为每个重载函数产生不同的内部标识符。
博客指出在C++/C程序里,两个同名函数返回值不同,调用时若忽略返回值,编译器和程序员无法判断调用的是哪个函数。因此,只能依据参数而非返回值类型来区分重载函数,编译器会根据参数为每个重载函数生成不同内部标识符。
void function(void);
int function (void);
上述两个函数,第一个没有返回值,第二个的返回值是int类型。如果这样调用函数:
int x = function ();
则可以判断出function是第二个函数。问题是在c++/c程序中,我们可以忽略函数的返回值。在这种情况下,编译器和程序员都不知道哪个function函数被调用。
所以只能靠参数而不能靠返回值类型的不同来区分重载函数。编译器根据参数为每个重载函数产生不同的内部标识符。
892
4万+

被折叠的 条评论
为什么被折叠?