为什么不能通过它的返回类型重载函数,应该没有支持这种重载的语言。我想知道发生了什么事情的原因,或者为什么它不允许按返回类型重载这些函数。为什么我不能通过它的返回类型重载一个函数?
int func();
bool func();
int main()
{
int iret = func();
bool bret = func();
}
总是在我的脑海中产生这种情绪。希望满意答案。
为什么不能通过它的返回类型重载函数,应该没有支持这种重载的语言。我想知道发生了什么事情的原因,或者为什么它不允许按返回类型重载这些函数。为什么我不能通过它的返回类型重载一个函数?
int func();
bool func();
int main()
{
int iret = func();
bool bret = func();
}
总是在我的脑海中产生这种情绪。希望满意答案。
像
double function fn1()
{
int a = 2;
return a;
}
在上述例如甲功能a会在返回时隐式转换为double。
int function fn1()
{
double a = 2;
return a;
}
在上述例如a将在返回时隐式转换为int。
此fn的一个fn呼叫将类似int a = fn1();
或double a = fn1();
。
在任何一种情况下,两种定义都可能导致模糊不清,以确定哪个被调用。 返回的值存储在int
或double
这一事实在确定要调用的fn方面没有什么不同。该函数首先解析然后执行,然后返回值被分配。
如果双方没有返回类型的通话将被简单fn1();
使其暧昧,是否调用fn1()
返回类型为int
或double
谢谢,SuvP ... –
http://stackoverflow.com/questions/442026/function-超载返回式 –
谢谢Aswin ... :) –