"Нет соответствующего вызова функции" в конструкторе - программирование
Подтвердить что ты не робот

"Нет соответствующего вызова функции" в конструкторе

Это объявление конструктора, которое у меня есть в моем файле "solver.h".

Solver(const Board &board_c, int max_moves_c);

При попытке компиляции я получаю следующую ошибку...

solver.cpp: In constructor 'Solver::Solver(const Board&, int)':
solver.cpp:6:55: error: no matching function for call to 'Board::Board()'
  Solver::Solver(const Board &board_c, int max_moves_c)

И затем он перечисляет кандидатов, которые являются конструкторами Совета.

Я не уверен, что я делаю неправильно, потому что не вижу причин, по которым я должен получать эту ошибку.

Я компилирую с g++.

4b9b3361

Ответ 1

ошибка: нет соответствующей функции для вызова на "Board:: Board()"

означает, что в классе Board отсутствует конструктор deafault. В конструкторе Solver вы, вероятно, делаете что-то вроде:

Solver::Solver(const Board &board_c, int max_moves_c) {
    Board b; // <--- can not construct b because constructor is missing
    ...
}

поэтому вам нужно либо определить конструктор по умолчанию, либо вызвать соответствующий конструктор с некоторыми аргументами.

"И затем он перечисляет кандидатов, которые являются конструкторами Совета."

Это потому, что компилятор хочет вам помочь, поэтому перечисляет возможные конструкторы, которые действительно доступны (определены).