Вызов функции без параметра, когда параметр по умолчанию уже определен
Прошло много времени с тех пор, как я писал на C++, и я не могу найти решение моей проблемы в Интернете, поэтому этот вопрос:
У меня есть класс, где я хочу определить функцию с параметром по умолчанию: Run (par = "default")
class.h содержит:
class Test { public : void Run(QString par="default");};
class.cpp содержит:
void Test::Run(QString par="default") { ... };
Проблема, которую я получаю, заключается в том, что когда я пытаюсь вызвать эту функцию без параметра (я хочу использовать значение по умолчанию), компилятор жалуется на отсутствие функции run ().
Test test;
test.Run()
7: ошибка: неопределенная ссылка на `Test::Run()'
Я бы предпочел не использовать перегрузку функций.
Я пытался удалить значение по умолчанию только в.cpp, но ошибка компилятора осталась.
Что я здесь забываю? Я компилирую в QT используя GCC.
1 ответ
Если вы объявляете параметр по умолчанию, вы устанавливаете его только в объявлении класса. В определении вы оставляете это пустым.
class Test { public : void Run(QString par="default");};
void Test::Run(QString par) { ... };
все должно быть в порядке