“class::member”:缺少参数的默认参数
注解
默认参数列表缺少参数。 如果你在参数列表中的任何位置提供默认参数,则必须为当前声明中的所有后续参数或同一作用域内任何以前的声明定义默认参数。
示例
以下示例生成 C2548 for:
-
func1,因为它缺少默认参数b。 -
func3,因为它缺少默认参数c。
以下示例不为以下项生成 C2548:
-
func2,因为所有必需的默认参数都已提供。 - 第二个
func4声明,因为在前面的声明中提供了默认参数c,并且该参数位于同一作用域内。 - 第三个
func4声明,因为前面已提供了默认参数b和c。
// C2548.cpp
// compile with: /c
void func1(int a = 1, int b, int c = 3); // C2548
void func2(int a = 1, int b = 2, int c = 3); // OK
void func3(int a, int b = 2, int c); // C2548
void func4(int a, int b, int c = 3); // OK
void func4(int a, int b = 2, int c); // OK
void func4(int a = 1, int b, int c); // OK