在这题里我们只能选择C。重载函数允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。1,2,3在一起满足重载函数的条件,而4因为与1参数个数以及类型完全相同,所以被排除在外了。其实这题的答案除了123,也可以是234,考虑到选项中没有234的组合,所以只有C符合
创新互联建站从2013年创立,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元兴文做网站,已为上家服务,为兴文各地企业和个人服务,联系电话:18980820575
这样不是重载。
函数重载要求函数的参数个数不同或者参数类型不同。
因为调用函数的时候无法确认函数的返回类型,所以仅返回类型不同的函数都可以匹配,这样就造成二义性,所以仅仅是返回类型不同是不能重载的,
比如有
int f(int a)
{
return a+2;
}
float f(int a)
{
return a/3.0;
}
int main()
{
f(6); //该调用哪个呢?
}
你的这种重载方式不对,如果你仔细去看看重载的定义,你就会发现只是类型不同的函数参数重载是不好实现的,编译器不能够识别你调用的是哪一个函数。函数的重载可以传递的参数个数不一致,函数返回值不一致,但是对于有相同参数,参数类型不同这种重载一般是不能实现的。
函数名必须相同,返回值可以相同,也可以不同。参数个数不同;个数相同时类型不同;参数个数类型都相同时参数顺序不同。这三种情况都满足重载要求。也就是说重载函数区分的方法只能从函数的形参里看。
以上是函数的重载,在进一步讲构造函数的重载。构造函数没有返回类型,所以名字相同,参数类型或个数不同。根据生成类的对象方法不同,调用不同的构造函数。
终上所述:
如果函数名相同,而参数类型或个数不同,认为是不同的函数,这叫函数重载