如何解决在C ++中使用成员函数的简便方法
我是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 举报,一经查实,本站将立刻删除。