Member 13633258 Ответов: 2

Переопределение параметра по умолчанию : параметр 4


При компиляции я получаю ошибку переопределения параметра по умолчанию : параметр 4

Что я уже пробовал:

Я скомпилировал , но ничего не получилось

Patrice T

И у вас есть какой-то исходный код?

jeron1

Вам придется показать какой-то соответствующий код.

2 Ответов

Рейтинг:
2

KarstenK

Вы должны внимательно прочитать кодовую строку, в которой происходит ошибка. Я предполагаю, что у вас есть параметр по умолчанию не только в объявлении заголовка, но также и в реализации кода.

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


Рейтинг:
1

CPallini

[обновлено, спасибо Ричард]
Аргументы C++ по умолчанию[^] должно быть указано любой в функции (или методе) декларативные заявления или в функции (или методе) определения.
Указав его в как декларация, так и определение быть ошибкой.
Предпочтительным подходом является указание его только в функции (или методе) декларативные заявления.


Например

// function declarations
int my_add( int a, int b =  5);
int my_sub( int a, int b = -1);
// ..
// function definitions
int my_add( int a, int b = 5) //<- WRONG, default parameter repeated in function definition
{
  return (a + b);
}
int my_sub( int a, int b) //<- fine
{
  return (a -b);
}

[/обновление]


Richard MacCutchan

Это не совсем так. Если вы не используете объявления, то значения по умолчанию должны быть указаны в определении.

CPallini

Вы правы, спасибо, что указали на это.