来自一个 "傻瓜 "的问题 - 页 106 1...99100101102103104105106107108109110111112113...277 新评论 roman epifanov 2012.02.22 14:03 #1051 uncleVic: 任务...请附上一个信号模块(我没有)。让我们看一看。 附加的文件: SignalCandles.mqh 20 kb Victor Kirillin 2012.02.22 14:32 #1052 openlive: 这就更奇怪了。这个效果对我来说没有发挥出来。 roman epifanov 2012.02.22 15:03 #1053 uncleVic: 更加怪异的是。我不明白这种效果。只有在初始化时才有效果,在测试器中一切正常。好吧,我不需要它,我真的不需要它。 Olegs Kucerenko 2012.02.23 18:58 #1054 Zigzag指标读取的是不再存在的数值(在重绘之前它们肯定是存在的)。 这一点可以避免吗?如果数值在缓冲区里,为什么又不画了......。 [删除] 2012.02.24 09:09 #1055 下午好,请解释一下以下情况。class Cbase { public: virtual ~Cbase(){}; int k; }; class Cchild:public Cbase { public: ~Cchild(){}; double *p; int f; };我有两个类,我相信下一代的实例(base- child - child2 - ...),在内存中占用越来越多的空间。对于操作者New来说,我们确切地说出要分配多少内存,在参数中传递给类。但是在删除操作符 中,我们并没有说到底要分配多少内存。从这个推理出发,下一个情况会发生什么并不十分清楚。void fn() { Cbase *pClass; pClass = new Cchild; delete pClass; return; }我的意思是,我们将*pClass声明为指向Cbase(与Cchild相比是一个小类)的指针,但它实际上指向Cchild。因此,问题是,delete() 将如何表现?它将释放与Cbase大小相等 的字节数(那么内存将被堵塞),还是将正确地发生删除? P.S: 好吧,关于这个问题还有一个问题:在分配的内存区域(新)中是否有任何标签,我们可以通过它来了解这个区域的大小(类似于char的存储,结尾是零终止符)?或者换句话说,一段对我所声明的类的大小一无所知的代码能够正确地释放内存吗? --- 2012.02.24 09:18 #1056 220Volt:问题是,delete() 将如何表现?它释放的字节数是否等于Cbase的大小 (那么内存将被堵塞),还是会正确地进行删除?当然,它将正确释放内存。 P.S: 好吧,关于这个问题还有一个问题:在分配的内存区域(新)中是否有任何标签,我们可以通过它来了解这个区域的大小(类似于char存储,末端为零的终止符)?或者换句话说,一个对我所声明的类的大小一无所知的代码片段能否正确地释放内存? sizeof ? [删除] 2012.02.24 09:25 #1057 sergeev:当然会正确删除。你可以把砖点分散到破坏者身上。 这大概就是这个问题的来源。我已经大致按照描述做了(析构器不是虚拟的),指针类下面的析构器没有被调用。 [删除] 2012.02.24 09:28 #1058 sergeev: sizeof ? 我认为sizeof在编译时是有效的,但我说的是例如从另一个进程释放内存。如果这是可能的,那么我认为删除功能是可以理解的。 Документация по MQL5: Основы языка / Операторы / Оператор уничтожения объекта delete www.mql5.com Основы языка / Операторы / Оператор уничтожения объекта delete - Документация по MQL5 Ilyas 2012.02.24 09:36 #1059 MQL5中的析构器总是虚拟的。一切都被正确地删除了,试着把Print(__FUNCSIG__);放在解构器中。class CFoo { public: ~CFoo() { Print(__FUNCSIG__); } }; class CBar : public CFoo { public: ~CBar() { Print(__FUNCSIG__); } }; void OnStart() { CFoo *f=new CBar(); delete f; } [删除] 2012.02.24 09:38 #1060 问题甚至不在于我们通过new在类函数中设置了什么,而在于其 "本地 "成员的类数据。毕竟,它们也不是空的空间。 1...99100101102103104105106107108109110111112113...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
任务...请附上一个信号模块(我没有)。让我们看一看。
更加怪异的是。我不明白这种效果。
只有在初始化时才有效果,在测试器中一切正常。
好吧,我不需要它,我真的不需要它。
Zigzag指标读取的是不再存在的数值(在重绘之前它们肯定是存在的)。 这一点可以避免吗?
如果数值在缓冲区里,为什么又不画了......。
下午好,请解释一下以下情况。
我有两个类,我相信下一代的实例(base- child - child2 - ...),在内存中占用越来越多的空间。对于操作者New来说,我们确切地说出要分配多少内存,在参数中传递给类。但是在删除操作符 中,我们并没有说到底要分配多少内存。从这个推理出发,下一个情况会发生什么并不十分清楚。
我的意思是,我们将*pClass声明为指向Cbase(与Cchild相比是一个小类)的指针,但它实际上指向Cchild。因此,问题是,delete() 将如何表现?它将释放与Cbase大小相等 的字节数(那么内存将被堵塞),还是将正确地发生删除?
P.S: 好吧,关于这个问题还有一个问题:在分配的内存区域(新)中是否有任何标签,我们可以通过它来了解这个区域的大小(类似于char的存储,结尾是零终止符)?或者换句话说,一段对我所声明的类的大小一无所知的代码能够正确地释放内存吗?
220Volt:
问题是,delete() 将如何表现?它释放的字节数是否等于Cbase的大小 (那么内存将被堵塞),还是会正确地进行删除?
当然,它将正确释放内存。
P.S: 好吧,关于这个问题还有一个问题:在分配的内存区域(新)中是否有任何标签,我们可以通过它来了解这个区域的大小(类似于char存储,末端为零的终止符)?或者换句话说,一个对我所声明的类的大小一无所知的代码片段能否正确地释放内存?
当然会正确删除。你可以把砖点分散到破坏者身上。
sizeof ?