MQL5中的OOP问题 - 页 73 1...666768697071727374757677787980...96 新评论 Sergey Dzyublik 2020.06.07 16:43 #721 Igor Makanu:把自己降低到适当的交流水平:我的问题是关于这个主题的吗? 你为什么带着网上的照片来这里? 你知道答案吗?- 不,坐下来,闭上嘴;) 首先,不要戳穿我,其次,不要对真相做出如此激烈的反应。 我必须对你说实话,我得到的印象是,你与今天的对话者相差不大。 初学者在MQL4和MQL5中的任何问题,对算法和代码的帮助和讨论 Igor Makanu, 2020.06.07 13:46 大家好。请帮助我在我的代码中插入一个字符串变量。感谢 你能回答你自己的问题吗?,还是你在什么地方剪掉了一段代码而不能使用它?你至少要猜出发生了什么))......,但我想这不是这种方法的答案。 Maxim Kuznetsov 2020.06.07 16:48 #722 一位出了名的好心版主承诺,如果你挑起口舌之争,就会被禁言 :-) 等待... Artyom Trishkin 2020.06.07 16:50 #723 有些人知道得更多,有些人知道得更少。该论坛是用于交流和问答。提出问题以丰富知识并不可耻。对提问者采取居高临下的态度是令人尴尬的--这是一个已经转入下一个课程的学生的水平,他正在广播 "通过嘴唇传播神圣的知识"。总的来说是一个完全的赞美...... Igor Makanu 2020.06.07 16:51 #724 Maxim Kuznetsov:一位出了名的好心版主承诺,如果你挑起口舌之争,就会被禁言 :-)等候... 要想让我生气是很难的,我已经用过军队里所有的骂人话了,没有它们就没有一切)))。 Artyom Trishkin 2020.06.07 16:55 #725 Maxim Kuznetsov:一位出了名的好心版主承诺,如果你挑起口舌之争,就会被禁言 :-)等待... 不,马克西姆,不是这样的。请以开放的心态重新阅读它。 Sergey Dzyublik 2020.06.07 16:55 #726 #include <JSON\json.mqh> JSONObject * getJSONObject(const string json) { JSONValue *jv =((JSONParser *)(new JSONParser())).parse(json); //1 if (jv != NULL && jv.isObject()) return((JSONObject *)jv); //2 Print(__FUNCSIG__ + "parser error, json = ",json); delete jv; //3 return(NULL); } void OnStart() { JSONObject *jobj = getJSONObject("{\"ObjType\":2,\"m_period\":1}"); if(jobj!=NULL) Print("m_period = ", jobj.getInt("m_period")); delete jobj; //3 } 1.通过new创建的JSONParser 类型的对象没有删除,无意义地铸造到JSONParser* 本地JSONParser 变量 有什么问题?或者你想使用一个临时对象但不知道它的签名? 2.JSONObject* 中无意义的铸造 3.jv和jobj的变量肯定不会是NULL?否则,在MQL中删除一个空指针将在日志中打印 "垃圾"。 Igor Makanu 2020.06.07 17:03 #727 Sergey Dzyublik: 1.通过new创建的JSONParser 类型的对象没有删除,无意义地铸造到JSONParser* 本地JSONParser 变量 有什么问题?或者你想使用一个临时对象但不知道它的签名? 2.JSONObject* 中无意义的铸造 3.jv和jobj的变量肯定不会是NULL?否则,在MQL中删除一个空指针将在日志中打印 "垃圾"。 谢谢你,至少这是件好事。 这个方法是由库的作者使用的,我不认为用另一种方式来写解析的调用有什么意义 我不明白MQL在处理指针时的情况--当指针变成一个实体时,你不能取消引用,而当它是一个对象的指针时--我不知道该怎么做(( SZY:我20年前学过C++,后来工业工程师并没有广泛使用它。 首先他们都用Delphi,然后是Sharp,对于控制器我没有见过C++,一切都在专门的 软件上工作--这可能是大学对工程学生的印记--他们总是从Pascal开始训练,甚至在伏尔加格勒理工学院他们也读Turbo-Pascal。...谁知道他们从哪里得到的编译器 )))) ZS:去掉副歌,这不好,通常是反过来的。 Vladimir Simakov 2020.06.07 19:51 #728 Igor Makanu:谢谢,这很有意义。这个方法是由库的作者使用的,我不认为用另一种方式来写解析的调用有什么意义我不明白MQL在处理指针时的情况--当指针变成一个实体时,你不能取消引用,而当它是一个对象的指针时--我不知道该怎么做(()SZY:我20年前学过C++,后来工业工程师并没有广泛使用它。 首先他们都用Delphi,然后是Sharp,对于控制器我没有见过C++,一切都在专门的 软件上工作--这可能是大学对工程学生的印记--他们总是从Pascal开始训练,甚至在伏尔加格勒理工学院他们也读Turbo-Pascal。...谁知道他们从哪里得到的编译器 ))))SZY:去掉副歌,这不好,通常是反过来的。 这里没有指针)有一个类的句柄,是的,用它工作类似于用指针工作,但这是共同的东西的结束。 现在说说突出的那个。 你可以在堆栈或堆中创建一个对象。 CTest test; //test - object CTest* test=new CTest; //test - handle of object 在第一种情况下,编译器添加了一个隐含的析构器调用,它没有清理任何内存;它只是将堆栈指针返回到函数被调用 之前的位置。在第二种情况下,当离开作用域时,对象所占用的内存仍然被内存管理器标记为占用,由于没有指针指向它了,它不能被释放(这被称为内存泄漏),所以我们必须通过删除显式地销毁对象。 至于本地运行时间。这里的句柄,如果没有特别针对它的重载函数,就会被隐式地取消引用,例如。 class CTest{ }; void OnStart() { CTest test; CTest* _test=new CTest; Test(test); Test(&test); Test(_test); _Test(_test); delete _test; } void Test(CTest &test){Print("Object");} void Test(CTest* test){Print("Handle");} void _Test(CTest &test) {Print("Ok");} PS。是的,忘记夏普吧,根本没有共同点)))) Igor Makanu 2020.06.07 20:00 #729 Vladimir Simakov: PS。是的,忘掉夏普吧,没有什么共同点)))。 你不会明白的,你一直习惯于好的东西,这是合乎逻辑的,如果你搞砸了--VS会马上告诉你,当代码被执行时--你离开了函数体--就忘了它吧,你只要给创建的代码赋值NULL,它就会自己消除混乱)) 谢谢,我将考虑一下 Vladimir Simakov 2020.06.07 20:47 #730 Igor Makanu:这不行,你很快就会习惯一个好的东西,这都是合乎逻辑的,如果你在某个地方搞砸了--VS会马上告诉你,在代码执行中,你离开了函数体--你就会忘记,最多是你创建了NULL--它会自己清除掉))谢谢,我将考虑一下 是的,只有一个可悲的隐含对象引用(例如一些委托的调用叶中的方法调用)活在代码丛中,而内存已经消失。也不能在夏普中搞得一团糟。 1...666768697071727374757677787980...96 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
把自己降低到适当的交流水平:我的问题是关于这个主题的吗? 你为什么带着网上的照片来这里? 你知道答案吗?- 不,坐下来,闭上嘴;)
首先,不要戳穿我,其次,不要对真相做出如此激烈的反应。
我必须对你说实话,我得到的印象是,你与今天的对话者相差不大。
初学者在MQL4和MQL5中的任何问题,对算法和代码的帮助和讨论
Igor Makanu, 2020.06.07 13:46
大家好。请帮助我在我的代码中插入一个字符串变量。感谢
你能回答你自己的问题吗?
,还是你在什么地方剪掉了一段代码而不能使用它?你至少要猜出发生了什么))
......
,但我想这不是这种方法的答案。
一位出了名的好心版主承诺,如果你挑起口舌之争,就会被禁言 :-)
等待...
一位出了名的好心版主承诺,如果你挑起口舌之争,就会被禁言 :-)
等候...
要想让我生气是很难的,我已经用过军队里所有的骂人话了,没有它们就没有一切)))。
一位出了名的好心版主承诺,如果你挑起口舌之争,就会被禁言 :-)
等待...
1.通过new创建的JSONParser 类型的对象没有删除
,无意义地铸造到JSONParser*
本地JSONParser 变量 有什么问题?或者你想使用一个临时对象但不知道它的签名?
2.JSONObject* 中无意义的铸造
3.jv和jobj的变量肯定不会是NULL?否则,在MQL中删除一个空指针将在日志中打印 "垃圾"。
1.通过new创建的JSONParser 类型的对象没有删除
,无意义地铸造到JSONParser*
本地JSONParser 变量 有什么问题?或者你想使用一个临时对象但不知道它的签名?
2.JSONObject* 中无意义的铸造
3.jv和jobj的变量肯定不会是NULL?否则,在MQL中删除一个空指针将在日志中打印 "垃圾"。
谢谢你,至少这是件好事。
这个方法是由库的作者使用的,我不认为用另一种方式来写解析的调用有什么意义
我不明白MQL在处理指针时的情况--当指针变成一个实体时,你不能取消引用,而当它是一个对象的指针时--我不知道该怎么做((
SZY:我20年前学过C++,后来工业工程师并没有广泛使用它。 首先他们都用Delphi,然后是Sharp,对于控制器我没有见过C++,一切都在专门的 软件上工作--这可能是大学对工程学生的印记--他们总是从Pascal开始训练,甚至在伏尔加格勒理工学院他们也读Turbo-Pascal。...谁知道他们从哪里得到的编译器 ))))
ZS:去掉副歌,这不好,通常是反过来的。
谢谢,这很有意义。
这个方法是由库的作者使用的,我不认为用另一种方式来写解析的调用有什么意义
我不明白MQL在处理指针时的情况--当指针变成一个实体时,你不能取消引用,而当它是一个对象的指针时--我不知道该怎么做(()
SZY:我20年前学过C++,后来工业工程师并没有广泛使用它。 首先他们都用Delphi,然后是Sharp,对于控制器我没有见过C++,一切都在专门的 软件上工作--这可能是大学对工程学生的印记--他们总是从Pascal开始训练,甚至在伏尔加格勒理工学院他们也读Turbo-Pascal。...谁知道他们从哪里得到的编译器 ))))
SZY:去掉副歌,这不好,通常是反过来的。
这里没有指针)有一个类的句柄,是的,用它工作类似于用指针工作,但这是共同的东西的结束。
现在说说突出的那个。
Vladimir Simakov:
PS。是的,忘掉夏普吧,没有什么共同点)))。
你不会明白的,你一直习惯于好的东西,这是合乎逻辑的,如果你搞砸了--VS会马上告诉你,当代码被执行时--你离开了函数体--就忘了它吧,你只要给创建的代码赋值NULL,它就会自己消除混乱))
谢谢,我将考虑一下
这不行,你很快就会习惯一个好的东西,这都是合乎逻辑的,如果你在某个地方搞砸了--VS会马上告诉你,在代码执行中,你离开了函数体--你就会忘记,最多是你创建了NULL--它会自己清除掉))
谢谢,我将考虑一下
是的,只有一个可悲的隐含对象引用(例如一些委托的调用叶中的方法调用)活在代码丛中,而内存已经消失。也不能在夏普中搞得一团糟。