Как инициализировать класс и переопределить его родителя в 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;
}
};