Compartilhar via


Erro do compilador C2548

“class::member”: parâmetro padrão ausente para parâmetro de parâmetro

A lista de parâmetros padrão não tem um parâmetro. Se você fornecer um parâmetro padrão em qualquer lugar em uma lista de parâmetros, deverá definir parâmetros padrão para todos os parâmetros subsequentes na declaração atual ou em quaisquer declarações anteriores dentro do mesmo escopo.

Exemplo

O exemplo a seguir gera C2548 para:

  • func1 porque está faltando o argumento bpadrão .
  • func3 porque está faltando o argumento cpadrão .

O exemplo a seguir não gera C2548 para:

  • func2 porque todos os argumentos padrão necessários são fornecidos.
  • A segunda func4 declaração porque o argumento c padrão é fornecido na declaração anterior e está no mesmo escopo.
  • A terceira func4 declaração porque ambos os argumentos b padrão são c fornecidos 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