通用类库 - 错误、说明、问题、使用功能和建议 - 页 27 1...202122232425262728293031323334...38 新评论 Andrey Pogoreltsev 2019.04.05 08:05 #261 Artyom Trishkin:我的意思是,终端子系统自动删除你创建的所有对象,并把它们的指针放在列表中,你称之为拐杖,而你不认为手动处理对象并为其创建拐杖是拐杖。这不是你在第一项中所说的一部分,也是我回应的主要原因。这也是,而且是出于同样的原因。你创建集合是为了什么,为了集合和自动删除对象?)我根本没有说过任何关于手动操作的事情。你从哪里得到的?) 研究STL,你就会明白我在说什么。 Andrey Pogoreltsev 2019.04.05 08:09 #262 Igor Makanu:如何正确复制,你能给这个模板一个例子吗? 我用帮助写了AddValue方法https://www.mql5.com/ru/docs/basis/types/classes我绞尽脑汁,但除了我在例子中写的,我在MQL中没有看到任何其他解决方案 让我看看你对正确的数据存储的实施。 这就是我在你的案例中的意思。void AddValue (const T &value) { Tptr = new T(value); mlist.Add(Tptr); } 但无论如何,这个解决方案是错误的。一个正常的解决方案是使用类似STL的东西。在你的例子中是std::list。 我认为MQL5并没有限制它。你可以尝试将STL源从同一个VS翻译成MQL TheXpert 2019.04.05 08:10 #263 在老一代的版主中,至少有两个专业的程序员。现在没有了。而且非常明显 ) Igor Makanu 2019.04.05 08:32 #264 Andrey Pogoreltsev: 这就是我在你的案例中的意思。但这仍然是错误的解决方案。通常的解决方案是使用类似STL的东西。在你的例子中是std::list。 我不认为MQL5没有限制它。你可以尝试将STL源代码从VS翻译成MQL再次强调:MQL不是C++。 而MQL中对象的指针实际上是一个句柄,而C++中的指针是一个物理内存地址。 将C++库移植到MQL有什么意义? Andrey Pogoreltsev 2019.04.05 08:41 #265 Igor Makanu:再次强调:MQL不是C++。 而MQL中的对象指针实际上是一个句柄,C++中的指针是一个物理内存地址。将C++库移植到MQL有什么意义?要正确实现设计模式,而不是用泛型来制造潜在的问题。 你一定很惊讶,但操作系统的指针也是虚拟的。你仍然要把它们转换成物理的,但这是与指针完全不同的工作水平。 你不可能将1移植到1中,但我认为你能够移植一个剥离的C++03。可提供模板和运营商的支持。 Igor Makanu 2019.04.05 09:05 #266 Andrey Pogoreltsev: 1.你可能会感到惊讶,但操作系统的指针也是虚拟的。它们仍然需要转换为实物,但这是另一个层次的指针处理。 2.你将无法将1移植到1中,但你将能够移植剥离的C++03。对模板和运营商的支持也是存在的。1.我不会感到惊讶 2.好吧,事实是这样的--即使你们聚在一起,从C++做一个移植,仍然会引起问题,但为什么不象原来那样呢?- 有何意义? 有一个MQL的标准库,使用它至少可以在某种程度上保证将来会有开发者提供支持。 我已经被烧过几次了--我使用几年前写的文章中的图形组件,它很容易使用,很像用Delphi组件工作,但当我开始尝试实施更严肃的项目时,我得到了很多问题,而文章的作者却没有回应 我不记得是哪位著名的程序员说过这样的话:代码不应该是美丽的或可读的,它必须实现其目的 在我们的讨论中,如果我没有记错的话,你想用列表来存储数据的结构,我给你看了我的实现,我为同样的任务开发的--我的实现是否有效?- 它是否会导致MQL-程序的运行时错误?- 我很想在谈话过程中发现 [删除] 2019.04.05 09:05 #267 Andrey Pogoreltsev: 我想,C++03是可能的。对模板和操作者的支持。 嗯,是的,祝你好运 )) Alexey Navoykov 2019.04.05 13:02 #268 Igor Makanu:代码不一定要漂亮或可读,它必须完成它的工作这只是在你想完善它之前的真实情况。 Alexey Navoykov 2019.08.16 02:44 #269 我已经指出了CLinkedList类中的这个错误,但我要重复一下。 列表的开始和结束节点是相互封闭的:最后一个节点的Next指向第一个节点,而第一个节点的Previous指向最后一个节点。 结果,标准的搜索循环变成了一个无限循环。 #include <Generic\LinkedList.mqh> void OnStart() { CLinkedList<string> list; list.AddLast("One"); list.AddLast("Two"); list.AddLast("Three"); int i=0; for (CLinkedListNode<string> *node= list.First(); node!=NULL; node=node.Next()) // Цикл бесконечно бегает по кругу { } } 在C#中,这样的废话自然不会被观察到。 最后一个节点的Next是零,第一个节点的Previous 也是如此。 我不知道这是否是开发者发明的一些 "功能"(虽然我看不出它有什么用处),但无论如何,库的行为应该与原来的行为一致。 Alexey Volchanskiy 2019.08.16 04:14 #270 Alexey Navoykov: 我已经指出了CLinkedList类中的这个错误,但我还是要重复一下。 列表的开始和结束节点是相互封闭的:最后一个节点的Next指向第一个节点,而第一个节点的Previous指向最后一个节点。 结果,标准的搜索循环变成了一个无限循环。 在C#中,自然不会有这样的废话。 最后一个节点的Next是零,第一个节点的Previous 也是零。 我不知道这是否是开发者发明的一些 "功能"(尽管我没有看到它的任何好处),但无论如何,库的行为应该与原版对应。 这里到底又发生了什么?他们正在删除完美的LinkedList帖子。就像这样,在欧洲的某个地方,一个匿名版主正在删除来自可恨的俄罗斯人的帖子,同时恶意地冷笑。真是个垃圾场,它让你不想写。 1...202122232425262728293031323334...38 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你创建集合是为了什么,为了集合和自动删除对象?)我根本没有说过任何关于手动操作的事情。你从哪里得到的?)
研究STL,你就会明白我在说什么。
如何正确复制,你能给这个模板一个例子吗?
我用帮助写了AddValue方法https://www.mql5.com/ru/docs/basis/types/classes
我绞尽脑汁,但除了我在例子中写的,我在MQL中没有看到任何其他解决方案
让我看看你对正确的数据存储的实施。
但无论如何,这个解决方案是错误的。一个正常的解决方案是使用类似STL的东西。在你的例子中是std::list。
我认为MQL5并没有限制它。你可以尝试将STL源从同一个VS翻译成MQL
这就是我在你的案例中的意思。
但这仍然是错误的解决方案。通常的解决方案是使用类似STL的东西。在你的例子中是std::list。
我不认为MQL5没有限制它。你可以尝试将STL源代码从VS翻译成MQL
再次强调:MQL不是C++。
而MQL中对象的指针实际上是一个句柄,而C++中的指针是一个物理内存地址。
将C++库移植到MQL有什么意义?
再次强调:MQL不是C++。
而MQL中的对象指针实际上是一个句柄,C++中的指针是一个物理内存地址。
将C++库移植到MQL有什么意义?
要正确实现设计模式,而不是用泛型来制造潜在的问题。
你一定很惊讶,但操作系统的指针也是虚拟的。你仍然要把它们转换成物理的,但这是与指针完全不同的工作水平。
你不可能将1移植到1中,但我认为你能够移植一个剥离的C++03。可提供模板和运营商的支持。
1.你可能会感到惊讶,但操作系统的指针也是虚拟的。它们仍然需要转换为实物,但这是另一个层次的指针处理。
2.你将无法将1移植到1中,但你将能够移植剥离的C++03。对模板和运营商的支持也是存在的。
1.我不会感到惊讶
2.好吧,事实是这样的--即使你们聚在一起,从C++做一个移植,仍然会引起问题,但为什么不象原来那样呢?- 有何意义?
有一个MQL的标准库,使用它至少可以在某种程度上保证将来会有开发者提供支持。 我已经被烧过几次了--我使用几年前写的文章中的图形组件,它很容易使用,很像用Delphi组件工作,但当我开始尝试实施更严肃的项目时,我得到了很多问题,而文章的作者却没有回应
我不记得是哪位著名的程序员说过这样的话:代码不应该是美丽的或可读的,它必须实现其目的
在我们的讨论中,如果我没有记错的话,你想用列表来存储数据的结构,我给你看了我的实现,我为同样的任务开发的--我的实现是否有效?- 它是否会导致MQL-程序的运行时错误?- 我很想在谈话过程中发现
Andrey Pogoreltsev:
我想,C++03是可能的。对模板和操作者的支持。
嗯,是的,祝你好运 ))
代码不一定要漂亮或可读,它必须完成它的工作
这只是在你想完善它之前的真实情况。
我已经指出了CLinkedList类中的这个错误,但我要重复一下。 列表的开始和结束节点是相互封闭的:最后一个节点的Next指向第一个节点,而第一个节点的Previous指向最后一个节点。 结果,标准的搜索循环变成了一个无限循环。
在C#中,这样的废话自然不会被观察到。 最后一个节点的Next是零,第一个节点的Previous 也是如此。
我不知道这是否是开发者发明的一些 "功能"(虽然我看不出它有什么用处),但无论如何,库的行为应该与原来的行为一致。
我已经指出了CLinkedList类中的这个错误,但我还是要重复一下。 列表的开始和结束节点是相互封闭的:最后一个节点的Next指向第一个节点,而第一个节点的Previous指向最后一个节点。 结果,标准的搜索循环变成了一个无限循环。
在C#中,自然不会有这样的废话。 最后一个节点的Next是零,第一个节点的Previous 也是零。
我不知道这是否是开发者发明的一些 "功能"(尽管我没有看到它的任何好处),但无论如何,库的行为应该与原版对应。
这里到底又发生了什么?他们正在删除完美的LinkedList帖子。就像这样,在欧洲的某个地方,一个匿名版主正在删除来自可恨的俄罗斯人的帖子,同时恶意地冷笑。真是个垃圾场,它让你不想写。