我有一个抽象基类,具有operator()()、operator和virtualoperator()(...)方法。在派生类中,我重写虚拟方法,但无法调用 operarator()() 方法。我也不知道为什么?
#include <iostream>
#include <vector>
using Date = size_t;
using Period = size_t;
// abstract series
template <class T>
class SeriesBase {
public:
T operator()() const {
return operator()(0);
}
T operator[](const Period period) const {
return operator()(period);
}
virtual T operator()(const Period period) const = 0;
};
template <class T>
class Series : public SeriesBase<T> {
public:
};
// concrete series
class DateSeries : public Series<Date> {
public:
Date operator()(const Period period) const override {
return 20231212; // or return something from vector
}
private:
std::vector<Date> values;
};
int main() {
DateSeries dateSeries;
dateSeries(); // not working ???
dateSeries[1]; // working
dateSeries(1); // working
}