Допустим, у меня есть следующий класс:
class LearningMethod {
public:
virtual void optimize( lib4neuro::ErrorFunction &ef, std::ofstream* ofs = nullptr ) = 0;
virtual std::vector<double>* get_parameters( ) = 0;
};
А теперь я унаследую его и создам новый класс, где метод optimize()
примет тип ErrorFunctionDifferentiable
, который наследуется от ErrorFunction
само по себе.
class GradientLearningMethod : public LearningMethod {
virtual void optimize( lib4neuro::ErrorFunctionDifferentiable &ef, std::ofstream* ofs = nullptr ) = 0;
};
Есть ли правильный способ, как это реализовать?Компилятор считает, что я создаю новый метод, а не перезаписываю старый.