class CiCustom : public CIndicator : public CDoubleBuffer
пользуется включением class CSeries : public CArrayObj который в свою очередь
пользуется включением class CArrayDouble : public CArray и
class CArrayObj : public CArray ну и конечно куда как без
включения class CArray : public CObject который включает
class CObject и #include "StdLibErr.mqh"
不要忘了,我们有一个非常好的内联机在运行,它耗费了很多小的功能,所以不会有速度的损失。
而在大多数情况下,通过vtable对虚拟函数 的调用被优化为直接调用。这是优化器的有效方法之一。再加上多次内联,你几乎可以完全摆脱复杂的多级调用,使代码看起来很平坦。
不要忘了,我们有一个非常好的内联机在运行,它耗费了很多小的功能,所以不会有速度的损失。
而在大多数情况下,通过vtable对虚拟函数 的调用被优化为直接调用。这是优化器的有效方法之一。再加上多重内联,几乎可以完全摆脱复杂的多级调用,使代码看起来很平整。
:) 有趣。而且没有人争辩说编译器完美地优化了代码,我只是向我的朋友展示了我为什么不在SB面前趴下。
好吧,让我们用例子来说明。
在实践中被一个简单的标准函数所取代
CopyBuffer(...);
我们有为艺术而艺术。以此类推,每个元素都会做一些事情(其余的,正如你所理解的,是为了最后的元素工作而写的)。
是的,我同意多功能性,是的,我同意结构良好的代码(你可以说,这是一个用于分析的样本)。
但它的要点是什么呢?重点是,这个库主要是为MQL5向导和作为OOP的教程所需要的。
我只是让该同志明白我为什么不在SB面前倒下。
是的,是的,我重申--我没有认真反对你的任何论点。关于这一点的争论将更具有宗教性而不是客观性。
好吧,就你的例子而言,就我个人而言,在我的案例中,似乎更可以接受的正是代码的第一个变体,因为所有这些多层次的内含物提供了指标与所有接口的兼容性,从CObject开始,一直到CiCustom。
但是,另一方面--所有的时间序列和指标都是按需创建的,堆积在一个集合中,然后供所有用户使用。当我们只需要复制一次缓冲区时,我们会想为什么要费这么大的劲。
所以在简单的情况下,当然是使用CopyBuffer() 要容易得多。
但是,如果我们有一打的用户使用给定的缓冲区呢? 在我的例子中,他们都会要求使用它,缓冲区会被创建,其余的人都会得到一个对它的引用。如果我们 "直接 "使用CopyBuffer()--我将有十个副本而不是一个。当你更狡猾地使用CopyBuffer()时,你会得到追踪谁和什么缓冲区被分配的东西,这与你提到的封装的成本相当。
我个人是支持合理性的--为一个地方用OOP做这么大的情节是没有意义的。如果我们有大量的用户,那么在我看来,OOP的方法是合理的。
那么现在是时候引入例外情况了,这样,一个代码就可以同时为mql4和mql5编译。
统一的问题迫在眉睫。
我在想,当合并两种语言时,像#ifdef这样的条件性编译指令是绝对必要的--这将简化两种平台之间的代码统一,而且依赖平台的API将在编译时被定义。
不幸的是,没有。测试员将保持单线程,没有MQL5云网络。
不要忘了,我们有一个非常好的内联机在运行,它耗费了很多小的功能,所以不会有速度的损失。
而在大多数情况下,通过vtable对虚拟函数 的调用被优化为直接调用。这是优化器的有效方法之一。再加上多次内联,你几乎可以完全摆脱复杂的多级调用,使代码看起来很平坦。
啊啊啊...现在我明白为什么我在写程序时最常犯的错误之一是 "函数必须有一个主体"。
它是需要内联的...我在想,为什么我认为一个函数头就足以编译一个模块,但没有...你需要一个身体...
这很好。
啊啊啊...现在我明白为什么我在写程序时最常犯的错误之一是 "函数必须有一个主体"。
它是需要内联的...我在想,为什么我认为一个函数头就足以编译一个模块,但没有...你需要一个身体...
这是正确的,但它与优化器没有关系。
如果你已经描述了一个 类函数的原型,那么主体一定是存在的。即使它是空的。
雷纳特,我建议在MT4中,我们应该使图表上的头寸可见性控制不在终端的一般参数中,而是为每个图表单独设置(如MT5中的做法)。
我就这个问题向SR提出的申请已经搁置了两个月了。
雷纳特,我建议在MT4中,我们应该使图表上的头寸可见性控制不在终端的一般参数中,而是为每个图表单独设置(如MT5中的做法)。
我就这个问题向SR提出的申请已经搁置了两个月了。