为什么函数重载时仅仅返回值不同是不允许的?
1个回答
展开全部
假设你有两个返回值不同的函数,比如
int getvalue(viod) {return value1;}
float getvalue(viod) {return value;}
那么当你去调用他们的时候,由于你调用的时候
写的是
getvalue();
于是你的编译器就无法知道 你调用的是上面哪个 函数(因为两个函数都不用传参数,编译器无法区分它们), 所以就会报错。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果你写成这样 (函数重载)
int getvalue(int i, int j) {return value1;}..................1
float getvalue(viod) {return value;}......................2
那么当你当你调用
getvalue()编译器就会知道 你调用的是第2个函数
getvalue(2, 3) 编译器就会知道 你调用的是第1个函数
就不会出错了。
int getvalue(viod) {return value1;}
float getvalue(viod) {return value;}
那么当你去调用他们的时候,由于你调用的时候
写的是
getvalue();
于是你的编译器就无法知道 你调用的是上面哪个 函数(因为两个函数都不用传参数,编译器无法区分它们), 所以就会报错。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果你写成这样 (函数重载)
int getvalue(int i, int j) {return value1;}..................1
float getvalue(viod) {return value;}......................2
那么当你当你调用
getvalue()编译器就会知道 你调用的是第2个函数
getvalue(2, 3) 编译器就会知道 你调用的是第1个函数
就不会出错了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询