Виртуальная функция не возвращает значение из конкретной функции - PullRequest
0 голосов
/ 27 сентября 2019

Я работаю над программой, которую не кодировал, но хочу (нужно) понять.Он находится в C ++ в контексте виртуальных функций.

В какой-то момент он устанавливает виртуальную булеву функцию «acceptReject», как показано здесь.

virtual bool acceptReject(const Double& DeltaH) const = 0;

Затем он устанавливает для этого виртуального булево значениебудьте конкретной булевой функцией globalMetropolisAcceptReject, как показано здесь:

bool acceptReject(const Double& DeltaH) const {
  globalMetropolisAcceptReject(DeltaH);
}

Если я вызываю globalMetropolisAcceptReject напрямую, все работает.Если я вызываю acceptReject (виртуальная функция), он правильно вводит и обрабатывает код, но не возвращает значение обратно.Вместо этого он всегда выдает ложь.

Есть предположения о том, что не хватает?

1 Ответ

0 голосов
/ 27 сентября 2019

Похоже, мне просто нужно было добавить слово return в реализации.

    bool acceptReject(const Double& DeltaH) const {
  return globalMetropolisAcceptReject(DeltaH);
}

Правильный ли протокол для удаления вопроса или?

...