Я получаю эту ошибку, когда пытаюсь переопределить функцию "Solver :: solve (P key)":
Не виртуальная функция-член, отмеченная ' override 'скрывает функцию виртуального члена. скрытая перегруженная виртуальная функция 'Solver <, std :: vector>, std :: allocator >>>> :: solve', объявленная здесь: тип mimsatch ...
Solver.h:
...
template<class P, class S>
class Solver{
public:
virtual S solve(P key) = 0;
};
Bh
using namespace std;
namespace server_side {
class B: public Solver<string, vector<vector<double>>> {
public:
string solve(vector<vector<double>> mat) override {//<--- The error is here, on "override"
code...
}
Однако, если я заменю vector<vector<double>>>
на std::string
, все будет работать отлично. Проблема в том, что мне нужно, чтобы он был vector<vector<double>>>
...
Альтернативный код, который работает:
...
using namespace std;
namespace server_side {
class B: public Solver<string, string> {
public:
string solve(string mat) override {
code...
}
Есть идеи, как его решить? Спасибо!