C++中默认参数是什么?谁给我讲讲
2013-11-11
展开全部
1、默认参数的目的默认参数也称缺省参数,C++可以给函数定义默认参数。通常,调用函数时,要为函数的每个参数给定对应的实参,但有时需要用相同的实参反复调用该函数,这时,C++可以给该参数定义默认值,默认参数在函数声明中提供。如声明函数void delay(int loops=1000);这样,无论何时调用delay()函数,都不用给loops赋值,程序会自动将它当作1000进行处理;当然也可以对其进行赋值。若对其赋值,则按所赋的实参进行运算;若没有赋值,则按指定的默认值进行运算。例如:delay(2500); // loops设置为2500delay(); //OK:loops采用默认值1000允许函数默认参数值,是为了让编程更简单。当一个函数有多个默认参数时,在主函数调用该函数时,会出现实参个数小于函数真实参数个数(形参个数)的现象,实际上缺少的参数在该函数声明时已经提供了默认值,实参中不赋值等于采用了默认值。(我们在程序中调用MFC内置函数时会经常遇见这种情况!)2、默认参数的声明默认参数在函数声明中提供当函数又有声明又有定义时,定义中不允许提供默认参数;当函数只有定义时,默认参数才可以出现在函数定义中。3、默认参数的顺序规定如果一个函数中有多个默认参数,则形参分布中,默认参数应该从右至左逐渐定义。也就是说,默认参数只能集中放在函数参数的最后面,这是为了保证函数调用时参数传递的正确性。例如:void func(int a=1,int b,int c=3,int d=4) //errorvoid func(int a,int b=2,int c=3,int d=4) //ok而在调用该函数时,系统会向左匹配参数。例如,对第二个函数声明,其正确的调用方法为:func(10,15,20,30); //OK:调用时给出所有实参func(); //error:参数a没有默认值func(12,12); //OK:参数c和d采用默认值func(2,15, ,20); //error:只能从右向左顺序匹配默认值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询