C++中函数类型与定义的函数返回值类型必须相同么?

在用C++编译程序的时候看到书上面写了这么一句话“重载函数的返回类型可以相同,也可以不同”。比如下面的语句:intmyFunction(int,int);intmyFUn... 在用C++编译程序的时候看到书上面写了这么一句话“重载函数的返回类型可以相同,也可以不同”。比如下面的语句: int myFunction(int ,int); int myFUnction(long,long); int myFunction(long);他们的返回值类型都是相同的,如果把第三个改成了:double myFunction(long); 那这个还叫函数重载么?还有,假如先前已经声明了一个函数int myFUnction(long,long); 然后在定义函数时应该返回一个整型的值,可以返回其他类型的值么?比如说返回一个double类型的值。 展开
 我来答
dry_land
2011-08-22 · TA获得超过303个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:156万
展开全部
1.可以。只要返回值、参数列表的参数个数、类型、顺序中的一个或几个发生变化而函数名与作用域不变都可以是重载。
2.返回值与函数类型不同会有类型转换的。具体规则书上一般都有。
手机用户27922
2011-08-23 · TA获得超过239个赞
知道小有建树答主
回答量:645
采纳率:0%
帮助的人:443万
展开全部
这是函数重载问题
函数重载,只要函数形参的反回类型或者个数不一样,就可以了。
如果反回类型不同,形参的反回类型和个数都一样的,就不是函数是重载
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鬼火狼烟
2011-08-22 · TA获得超过6333个赞
知道大有可为答主
回答量:2275
采纳率:50%
帮助的人:2712万
展开全部
重载和返回值类型无关,只和函数名和函数参数类型相关,即使你返回值类型不同,如果编译器能从函数参数和函数名来判断出该使用哪一个,这个重载即为合法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuzhi3078
2011-08-22 · TA获得超过123个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:216万
展开全部
有两种情况不是重载:
class hello{
public:
int sad(int a,int c){return c;}
void sad(int a,int c){return;}
};
当你这样调用sad,
hello h;
h.sad(X,X);
编译器不知道你调用的是那一个,而编译失败。
2如下:
class hello{
public:
// int sad(int a){return a;}
int sad(int a,int c=5){return c;}
};

void main()
{
hello h;
int t=5, x=1;
cout<<h.sad(6);
}
这样情况编译器也不会知道你调用哪一个? 也失败。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式