Как инициализировать класс и переопределить его родителя в MQL?

У меня есть два класса: график, который расширяет рынок.

Я хотел бы инициализировать класс Chart, но предоставив указатель на уже существующий родительский класс, чтобы сэкономить память (чтобы избежать инициализации новых экземпляров, если он может указывать на одно и то же).

Вот код:

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

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

Однако это не с:

'=' требуется объект

Можно ли переопределить экземпляр родительского класса во время дочерней инициализации, указав указатель класса?

1 ответ

Решение

Это должно работать путем переопределения указателя на родительский класс в конструкторе:

class Market {
};

class Chart : public Market {
  public:
    void Chart(Market *_market) {
      Market *_parent = (Market *) GetPointer(this);
      _parent = _market;
    }
};
Другие вопросы по тегам