在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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...