【发布时间】:2017-03-23 22:30:34
【问题描述】:
我有一个类:market simulator,它有一个方法 send_order(int qty, string symbol, double price),由我的 xyz_strategy 类调用,这是一个正在测试的交易策略。当market_simulator 收到订单时,它会检查市场价格并决定是否可以执行订单。它的标题是这样的:
class market_simulator {
std::vector<order> orders;
static std::shared_ptr<market_simulator> instance;
std::map<std::string,std::shared_ptr<instrument> > instruments;
...
public:
static std::shared_ptr<market_simulator> market();
...
void send_order(int qty, std::string symbol, double price);
};
问题是我需要一种方法让market simulator 将填充报告发回给发件人。
我的第一次尝试是将指向类的指针发送到市场模拟器。但是市场模拟器必须包含“xyz_strategy”(和其他策略),然后它也可以访问它的所有方法。
我的第二次尝试是创建一个虚拟超类order_sender,它有一个名为fill_report(int qty, string symbol, double price) 的方法。现在市场模拟器只知道order_sender,只能调用它的一种方法。但是现在策略有太多的超类需要实现。
如何在 c++ 中实现一个指向函数的指针,这样market_simulator 只知道这个函数并在它执行时调用它?
编辑:发送指针的函数类似于:
void on_execution(int quantity, std::string symbol, double price);
【问题讨论】:
标签: c++ architecture