Я пытаюсь сделать что-то вроде
class base {
public:
virtual double operator() (double val) = 0;
virtual double operator() (double prev, double val) {
return prev + operator()(val);
}
};
class derived: public base {
virtual double operator() (double val) {
return someting_clever;
}
};
Я хочу перегрузить оператор (), чтобы использовать его с различными алгоритмами, такими как std :: аккумулировать или std :: transform.Я полностью доволен определением оператора базового класса () (double, double).Однако я не могу назвать это из производного класса.Нужно ли переписывать один и тот же код для каждого класса, производного от базы?