如何在 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;
}
};
我有两个 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;
}
};