c++里,,这两个为什么不能做为重载函数?
intf(int,int=0,double=0)voidf(intdouble)后面一个是voidf(int,double)少了一个逗号。。...
int f( int ,int=0,double=0)
void f( int double)
后面一个是void f( int ,double) 少了一个逗号。。 展开
void f( int double)
后面一个是void f( int ,double) 少了一个逗号。。 展开
2个回答
展开全部
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。
所以,可以啊 ?怎么提示不对?报什么错误?
所以,可以啊 ?怎么提示不对?报什么错误?
追问
如果我运行的就是f(8,2)这种函数 系统就会报错。
ambiguous call to overloaded function
楼下说对了
追答
噢 我明白了 这是因为 2那个既可以认为是int类型,也可以认为是double类型,而int类型可以隐式转换成double类型。
这样调用试试
f(8,(int)2);
或者
f(8,(double)2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询