У меня есть тип данных OperationSequence
. Ниже приведен OperationSequence.h
class OperationSequence
{
public:
void appendOperation(std::function<double(double)> operation);
void moveOperation(int operation_index);
void eraseOperation(int operation_index);
const std::vector<std::function<double(double)>>& data() const;
private:
std::vector<std::function<double(double)>> operation_sequence;
};
double executeSequence(const OperationSequence& operation_sequence, double value);
void executeSequence(const OperationSequence& operation_sequence, const std::string& file_name);
Я должен реализовать printOperationSequence(const OperationSequence& operation_sequence).
Задание установило требование к операции равным f: double -> double
. Некоторые операции, такие как Addition
и Multiplication
также были запрошены.
Очевидной реализацией было бы создание интерфейса Operation
и возможность его вызова с f: double -> double
и метод std::string getName()
.
Каков будет хороший способ для OperationSequence оставаться этим универсальным, но также сделать его простым и эффективным для вывода значимой операции OperationSequence?
Значимый способ быть чем-то вроде умножения, сложения, ...
Является ли делегирование конструкции другому классу, который также создаст последовательность имя_операции, хорошая идея?
P.S. Не стесняйтесь улучшать название вопроса: D