Error del compilador C2548
'clase::miembro': falta el parámetro predeterminado para el parámetro parámetro
Falta un parámetro en la lista de parámetros predeterminados. Si proporciona un parámetro predeterminado en cualquier parte de una lista de parámetros, debe definir parámetros predeterminados para todos los parámetros posteriores de la declaración actual o cualquier declaración anterior dentro del mismo ámbito.
Ejemplo
El ejemplo siguiente genera la advertencia C2548 para:
func1
porque falta el argumentob
predeterminado .func3
porque falta el argumentoc
predeterminado .
El ejemplo siguiente no genera la advertencia C2548 para:
func2
porque se proporcionan todos los argumentos predeterminados necesarios.- La segunda
func4
declaración porque el argumentoc
predeterminado se proporciona en la declaración anterior y está en el mismo ámbito. - La tercera
func4
declaración porque los argumentos predeterminadosb
yc
se proporcionan anteriormente.
// 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