以下函数声明,正确的是( )
A、
void func1(int a=1, int b, int c=3);
B、
void defaultvaule1(int a=2, double b);
C、
void func2(int a=1, int b=2, int c)
D、
void defaultvalue2(int a, double b=3.0);
【正确答案】:D
【题目解析】:
C++语言规定,提供默认值时必须按从右至左的顺序提供,即有默认值的形参必须在形参列表的最后。如果有某个形参没有默认值,则它左侧的所有形参都不能有默认值。 即在有默认值的形参的右侧,不能出现无默认值的形参。
另外,在函数原型中,可以省略形参的名字,而只给出它的类型及默认值。
故本题选D。ABC中有默认值的形参的右侧都出现了无默认值的形参。