Поделиться через


Ошибка компилятора C2548

Class::member: отсутствует параметр по умолчанию для параметра

Замечания

Список параметров по умолчанию отсутствует. Если вы предоставляете параметр по умолчанию в любом месте списка параметров, необходимо определить параметры по умолчанию для всех последующих параметров в текущем объявлении или любых предыдущих объявлениях в одной области.

Пример

В следующем примере создается C2548 для:

  • 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