为什么只能通过范围和参数来重载,而不能通过返回值呢?
当编译器能从上下文中唯一的确定函数的意思时,如int x = f();这是没有问题的。然而,在C/C++中我们总是可以调用一个函数但忽略它的返回值,即调用了函数的副作用,在这种情况下,编译器不知道调用的哪个函数,而且读者也不知道调用的是哪个函数,所以c++禁止这种调用。
当编译器能从上下文中唯一的确定函数的意思时,如int x = f();这是没有问题的。然而,在C/C++中我们总是可以调用一个函数但忽略它的返回值,即调用了函数的副作用,在这种情况下,编译器不知道调用的哪个函数,而且读者也不知道调用的是哪个函数,所以c++禁止这种调用。