一个直观的为什么不以返回类型来识别函数重载的例子:
int func() {return 100;}
double func(){return 300.444;} // 假如重载函数func成功.
int data = (int)func(); // 返回值强制类型转换为int型
判断一下,这时到底该用哪一个函数呢?是用int func()还是double func()?这里不能判断,但也不能随便使用一个吧,也不能以前面的(int)来判断吧,要是能,那么用double func()的时候那还不写成int data = (int)(double)func(),这多么恐怖,虽然可以让编译器这样实现,但显然弊大于利,所以直接就不用返回值来作为函数的重载判定因素了.