返回执行策略。 - 页 4

 
prostotrader:

你必须这样做。

谢谢你)
 
也请解释一下在去初始化时该怎么做。我在代码中看到,只有类的实例被删除。而变量和数组需要被归零?这到底有什么好处呢?如果班级没有被删除怎么办?它们是否会保留在内存中,直到终端关闭或甚至关闭之后?
 
Ivan_Invanov:
也请解释一下,在去初始化的过程中该怎么做。我在代码中看到,只有类的实例被删除。而变量和数组需要被归零?这到底有什么好处呢?如果班级没有被删除怎么办?它们是否会保留在内存中,直到终端关闭或甚至关闭之后?

只有通过新创建的对象应该被删除。

 
Dmitry Fedoseev:

只有通过新创建的对象应该被删除。

谢谢你。为什么?
 
Ivan_Invanov:
谢谢你。这又是为什么呢?

因为它不会自己删除。

 
Dmitry Fedoseev:

因为它不会自己删除。

而如果你关闭了终端,它是否会留下来?
 
Ivan_Invanov:
如果你关闭了终端,它会留下来吗?

我认为它将被删除,但不确定。不要抱太大希望。你创造它,你删除它。

 
Dmitry Fedoseev:

我认为它将被删除,但不确定。不要抱太大希望。你创造它,你删除它。

它被删除了,确切地说,他们只是需要控制所创建的对象。这对程序员来说是很有必要的,他可以知道自己在什么地方创建和删除了什么,它可以减少程序运行过程中与内存泄漏有关的错误概率。
 
谢谢大家的回答。
 
请澄清运算符==和!=的情况。如果可比较的变量在有任何非零值时都表示为真(在帮助中是这样写的)。那么数组是如何表示的呢?而在这个例子中,为什么有一个比较 "不等于2",为什么正好是2,如果任何非零值都是真的,如果没有区别,如果是1,为什么说正好是2?下面是官方例子的代码(来自2009-2017年移动平均线 v1.00第132行)。
MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }

1.在运算符"=="、"!="中进行比较时,任何非零值都是真实的,这是真的吗?

2.数组是如何表示的? 它到底如何与数字相比较?

3.为什么比较中会有一个 "2"?如果根据帮助真理是任何非零值,那么写 "1 "是符合逻辑的。

4.如果CopyRates的条件出错了吗?