以下函数声明,正确的是( )

以下函数声明,正确的是( )


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中有默认值的形参的右侧都出现了无默认值的形参。


Top