如何在 MQL 中初始化 class 并覆盖其父项?

How to initialize class and override its parent in MQL?

我有两个 classes:扩展市场的图表。

我想初始化图表 class,但提供指向现有父级 class 的指针以节省一些内存(避免初始化新实例,如果它可以指向相同的东西)。

代码如下:

class Market {
  public:
    void Market(Market *_market) {
      this = GetPointer(_market); // Error: '=' object required
    }
};

class Chart : public Market {
  public:
    void Chart(Market *_market) : Market(_market) {
    }
};

但是它失败了:

'=' object required

是否可以通过提供 class 指针在子初始化期间覆盖父 class 的实例?

这应该通过在构造函数中覆盖指向父 class 的指针来工作:

class Market {
};

class Chart : public Market {
  public:
    void Chart(Market *_market) {
      Market *_parent = (Market *) GetPointer(this);
      _parent = _market;
    }
};