C++函数重载选择题,求理由,是单选。

已知一函数的原型是:int f(int ,int =0,double =0.0);
则下列函数中可以加以重载的是()
A. int f(int); B. int f(int,int); C. f(int,int,double); D. f(int double);

D可以。
重载需要满足一定的条件,但不管怎样,目的就一个,编译器需要能够区分各个同名函数,即在考虑默认参数的基础上,编译器需要在各种情况下都能够根据具体调用时使用的参数选出唯一一个函数原型。
上面的例子中,对于给定的调用语句f(0)和f(0,0)和f(0,0,0.0):
A)f(int)无法区分;
B)f(int,int)无法区分;
C)f(int,int,double)无法区分;
D)f(double)可以区分;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-14
只是个单选吗?你这题比较杂选呀,是选不能重载的还是选能重载的?你不会题搞错了。
对于重载的条件:
重载函数的参数类型和参数个数一定要不同(即:要么参数的类型不同,要么参数的个数不同,要么参数的类型和个数都不同),否则,编译器就不知道该调用那个函数了。追问

没搞错把。但是我也觉得答案不好。算了。还是谢谢。

本回答被提问者采纳
第2个回答  2011-12-11
只要参数个数不同,类型不同就可以重载。怎么回事单选。除了c不对,都可以进行重载吧。
第3个回答  2011-12-11
A
相似回答