巴解组织。应用问题 - 页 9

 

但你并不真的需要这样做....

你应该使用虚拟化的功能

P.S. 而且你不能用隐式类型转换 建立一个正常的程序。这只是一个变体......就像GoTo....运算符一样。

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexSTAL:
2) 最主要的是在程序结束前删除它...但如果你在一个函数中创建了这个指针,你需要注意把它保存在一个全局位置......


我也是这么想的,这个阵列似乎是全局的,但有一个漏洞。或者不仅仅是阵列需要在那里,还有其他的东西?

 
你真的让我笑了 ))))
 
Interesting:

我也是这么想的,这个阵列似乎是全局的,但有一个漏洞。或者不仅仅是阵列的问题,也有其他的问题?

那么你可能在其他地方有泄漏...

我有数百个这样创建的班级,从来没有任何泄漏的地方....。

你试试一个简单的例子....

 
TheXpert:
你真的让我笑了 ))))
有时这对你有好处...伤脑筋的....
 
AlexSTAL:

那么你可能在其他地方有泄漏...

我有数百个这样创建的班级,从来没有出现过任何泄漏的情况,....。

尝试一个简单的例子....

我想我已经摆脱了它,把这段代码放到EA卸载块中(到目前为止没有问题)。

  for (int i=0; i<ArraySize(ArrShapes);i++)  
  {
  ArrShapes[i].Free(ArrShapes[i]);
  }
 

结果是这样的,非常难以理解。

一句话,它是一个怪物...:)

附加的文件:
Forum-2.mq5  11 kb
 

总之,由于对这个问题的讨论,https://www.mql5.com/ru/forum/3566/page6#comment_58280,向SR发送了一份申请。

 
Yedelkin:

一般来说,在对问题进行讨论后,https://www.mql5.com/ru/forum/3566/page6#comment_58280,向员工代表发出申请。

1.我不知道,我不知道。

我认为开发者不会为了安全而去牺牲功能(从某种意义上说,这是正确的做法)。

亚历山大(AlexSTAL)提出的方法可能已经解决了这个问题(我们先不考虑它有些麻烦的性质)。

但这样做,我们最多只能获得对子代的事件和方法的访问权(在这种情况下,没有在祖先中声明的属性、变量和这类东西不太可能被使用)。

然而,我们很可能必须进行试验。


2.在我们现在所拥有的基础上,我们可以做一些其他的事情,我看到了2个选择。

а.使用专门的数组,它只包含一个类别的对象(某种类型的后代)。

在这种情况下,你可以获得对数组中对象的任何属性、方法和事件的访问权(因为它们是同质的)。

б.如果需要处理不同类型的对象的数组,这些对象是一个基类的后裔,你将不得不创建额外的数组来存储每种类型的后裔。

因此,在主数组中,我们只能获得所有对象的共同功能(如果不是AUTOGEN和QUALDA的话),而在专门的数组中,可以获得每种类型的后代的全部功能。

按照我的理解,我们将得到类似于由几个表组成的数据库的东西,有一对多和多对一的连接方法。然而,在这种情况下,将有一个整个事件的适当同步问题。此外,我们将不得不决定在哪些基础上将临时数据库的所有数组(表)联系起来。

绑定可以基于一些独特的标识符,例如,基于指针或专门的句柄(像火鸡中使用的那些)。

PS

顺便说一下,我认为用句柄的想法足够好(即使你把指针作为所有对象工作的基础)。手柄应该能够将独特的对象从类似的对象或整个对象列表中区分出来。

 
TheXpert:
你真的让我笑了 ))))
有时候我真的把自己吓坏了,这很好,有时候。:)