两个方法方法名相同,返回值类型不同,能不能构成函数重载?为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:30:16

呵呵,不能的。
重载必须要用参数来区分,传入不同参数,可以实现重载。
至于原因,可以这样理解,你调用一个方法,如果有多个方法同名,系统必须要知道到底你要调用哪一个,参数可以帮助系统在方法入口处得到答案,他根据你给的参数就知道该将哪个方法的入口调入栈中。如果只有返回值的不同,很多情况系统是不可能得到有效的判断条件的,比如:String method();int method();如果你这样调用:method();系统当然不知道该调用哪个。
所以答案是,不能。

构成重载,但大部分都是错误的重载,只有极少部分不是,比如虚函数的重载返回值可以不同,父类返回父类型,子类可以返回子类型,运算符的重载子类返回子类型,父类返回父类型然而其他重载就不同,难以根据返回值缺定要调用那个函数,出现二义性错误,生成不了代码。