//+------------------------------------------------------------------+//| Class of all classes |//+------------------------------------------------------------------+class CObject
{
};
//+------------------------------------------------------------------+//| Enumerator interface |//+------------------------------------------------------------------+template<typename T>
class IEnumerator
{
public:
virtualbool MoveNext();
virtual void Reset();
virtual T Current();
};
class CList : public CObject, public IEnumerator
{
...
}
自从MT5公布以来,我一直想得到这个问题的答案。
如果我把这些超级大的东西都放进去,我的EA(或其他人)的性能会提高多少?
我从来没有得到过答复...
...
...
外部库是被禁止的,因此R市场。如果没有这个限制,我就会在没有任何风险 的情况下靠销售非常高质量的指标发财。
...
你知道是什么阻止了一个糟糕的舞者?
没有人禁止通过将超级有利可图的统计方法转换为MQL代码来充实自己。AlgLib是你的帮助。
但这一切就像你的幻想:"如果我有同样的作品,但有粉红色的扣眼,我就会做这样的事情,就会名列前茅......" 但至少要尝试写一次同样的作品,并尝试自己实施。- 试着写点东西,至少先卖出一份你的产品。很快你就会脚踏实地,你会明白一切都比实施一些统计学方法要复杂得多。
不幸的是,接口在MQL5中是被禁止的,这是非常不幸的,尽管它们本可以在一个整齐的动作中被启用:允许纯抽象类的多重继承。
MQL5中的接口可以工作。
MQL5中的接口工作。
一个对象必须能够支持多个接口,否则它就变得毫无意义。
不幸的是,只是在一厢情愿的层面上。
也就是说,只要IEnumerator是一个纯粹的抽象类,涉及它的多重继承就完全安全。
MQL5中的接口工作。
同时,事实上,接口仍然要被包裹在长长的继承链中。这方面的一个例子是MQ发布的精彩图书馆内部。
一个对象必须能够支持多个接口,否则它就变得毫无意义。
我们已经在努力了,我们自己也需要它。
当且仅当它们被表示为纯粹的抽象类(不包含数据或实现,所有方法都是公开的)时,允许从类中进行多重继承就足够了。