问题描述
我是C ++的新手。我在成员函数方面遇到了问题,希望找到一个轻量级或适当的解决方案。
我有一个数据类。和许多继承相同父类的Work类。它们都有2种方法,即拉和推。现在,我希望构造一个OperationFlow类来优化计算。因此,有必要抽象一个Operation类,它的每个实例都包含某个工作类实例的某个方法。
class Data;
class Work_Base;
class Work1:public Work_Base{
public:
Data pull(Data);
Data push(Data);
}
class Work2:public Work_Base{
// similar as Work1
}
// and so on;
class Operation{ // I want to realize,not real code
public:
auto f;
Work w; //It is OK to have or not to have this member;
Operation(Work w,auto f):w(w),f(f){};
Data run(Data d){return w.f(d)};
}
class OperationFlow{ //Not the focus of this topic
public:
vector<Operation> ops;
}
事实上,我已经通过std :: function 实现了Operation类,请参见下文。但是,它可能是重量级的,所以我希望找到一种轻便的或合适的替代品。
typedef std::function<Data(Data)> DF;
class Operation{
public:
DF f; // f is lambda function that captures work object,so no work object member needed;
Operation(DF f):f(f){};
Data run(Data d){return f(d)};
}
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)