Why dont languages allow overloading of methods by return value? -


Ignore the return value in C, Java and many other languages.

  int i = func () float f = func () int func () {return 5} float func () {return 1.3}  

above Why is not legal? Does this make it more difficult for the program

  int i = func (func (func2 (func3 ())) // You do not know what you're getting  

Is it hard to write a compiler? Is there more language futility? Is there a language that can do the above?

What about this matter?

  Class A tool Fu {/*...*/} Implementation of class B Foo {/*...*/} A Funk () {New A (Return); } B. Funk () {New B (Return); } Fu Wei = Monk (); // Do you call?!  

When you allow overloading of a function name, there are problems before ambiguity, which argue differently. Along with checking back type, it is very difficult to solve the correct work.

I am sure a language can implement it, but it will make things more complicated, and generally the code is difficult to understand.


Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -