2013-04-01 46 views
1

为什么不能通过它的返回类型重载函数,应该没有支持这种重载的语言。我想知道发生了什么事情的原因,或者为什么它不允许按返回类型重载这些函数。为什么我不能通过它的返回类型重载一个函数?

int func(); 
bool func(); 
int main() 
{ 
    int iret = func(); 
    bool bret = func(); 
} 

总是在我的脑海中产生这种情绪。希望满意答案。

+1

http://stackoverflow.com/questions/442026/function-超载返回式 –

+0

谢谢Aswin ... :) –

回答

2

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();

在任何一种情况下,两种定义都可能导致模糊不清,以确定哪个被调用。 返回的值存储在intdouble这一事实在确定要调用的fn方面没有什么不同。该函数首先解析然后执行,然后返回值被分配。

如果双方没有返回类型的通话将被简单fn1();使其暧昧,是否调用fn1()返回类型为intdouble

+0

谢谢,SuvP ... –

相关问题