文章 "MQL5 编程基础:列表" - 页 9 12345678910 新评论 Dmitry Fedoseev 2013.12.27 18:14 #81 C-4: 也许你说的 "正常执行 "是指在模板上执行。 什么意思?在模板上是什么意思?编程时用手指按键的特殊方法? revers45 2013.12.28 11:50 #82 Integer: 那是什么样的?你说的模式是什么意思?编程时用手指按键的某种特殊扭曲方式? 模板是旧编译时宏替换方法的产物,实际上早已失去了面向对象编程的意义。 在现代语言中,此类任务已由运行时工具解决,例如 C# 中的泛型、动态类型识别 RTTI 和变体类型的使用。 当然,仍有一些老家伙喜欢模板,但在我看来,作为程序员,这是一个该退休的信号。 TheXpert 2013.12.28 12:14 #83 revers45:模板作为过时的编译时宏替换方法的遗留物,实际上早已失去了与面向对象编程的相关性。在现代语言中,这些任务都由运行时工具来解决,例如 C# 中的泛型、动态类型识别 RTTI 和变体类型的应用。 当然,仍有一些老家伙喜欢模板,但在我看来,作为程序员,这是一个该退休的信号。有趣的是,模板早已远离宏替换,而是作为一个独立的范例成功地存在着。C# 中的泛型只是缩小了的模板,实际上不是运行时的模板,而是编译时的模板,因此它们的速度更高)。但仅仅是 RTTI 和变体类型就暗示了一些不好的想法....____________________当然,这一切都很酷。但在 MQL5 中只有模板函数,没有类(会有吗?)因此,目前的工具无法实现模板上的列表。 revers45 2013.12.28 12:52 #84 TheXpert:有趣的是,模板早已远离宏替换,而是作为一个独立的范例成功地存在着。C# 中的泛型只是非常精简的模板,一般来说,不是运行时间而是编译时间,因此使用泛型的速度更高)。但仅仅是 RTTI 和变体类型就暗示了一些不好的想法....____________________当然,这一切都很酷。但在 MQL5 中只有模板函数,没有类(会有吗?)因此,目前的工具无法实现模板上的列表。 您很高兴,因为化石范式是您对上个世纪的温馨回忆,而且似乎是一个详尽的知识包袱。 但没有必要因此而淘汰现代方法,因为 MQ 会认为他们的客户怀念老祖宗的 Macro Assembler 和 ANSI C,而忽略改进 MQL5 的建议。 。 Dmitry Fedoseev 2013.12.28 12:58 #85 revers45,有点不对,我终于明白我在说什么了。通用函数的编写有这样一种可能性,以确保重载。你不会为每种类型的参数写一个函数,而是写一个函数模板。上面的人严重混淆了一些东西,我们这里只有函数模板。但是,谈话是以哪类行家开始的,却问到了关于模板的问题,所以一下子就沉默了。看来他们是巧舌如簧,仅此而已。 [删除] 2013.12.28 22:12 #86 由于没有模板,您可以用宏来实现,我想甚至有人写过一篇关于这个主题的文章(用 宏代替模板)+stl 中的类似算法也是用宏来 实现的。但在我看来,所有这些都应该放在标准库 的模板中,自己编写容器是错误的(仅对教学有用),使用数组更容易做到这一点。更新:不需要宏上的算法,函数模板是可用的。我不喜欢虚拟插入/...,最好在调试模式下使用类型检查断言。 Jian Dong Tang 2014.05.21 20:17 #87 下载了附件很多处有编译错误如:'m_head' - member of the constant object cannot be modified CiSingleList.mqh 504 9 Mzabalazo Nsibande 2014.11.28 21:55 #88 这是一篇好文章,我认为它是写给 Mql5 社区的每一个人的,因为每件事都解释得很清楚。 Mzabalazo Nsibande 2014.12.03 23:01 #89 我不得不说,这篇文章让我对 OOP 有了一个清晰的认识。 Pierre Rougier 2017.12.26 17:55 #90 您好、我尝试编译 test_MQL5_List.mq5 时,出现了以下错误:m_head' - 常量对象的成员不能被修改 CiSingleList.mqh 504 9'm_tail' - 常量对象的成员不能被修改 CiSingleList.mqh 505 9'm_size' - 常量对象的成员不能被修改 CiSingleList.mqh 496 9 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
也许你说的 "正常执行 "是指在模板上执行。
那是什么样的?你说的模式是什么意思?编程时用手指按键的某种特殊扭曲方式?
模板是旧编译时宏替换方法的产物,实际上早已失去了面向对象编程的意义。
在现代语言中,此类任务已由运行时工具解决,例如 C# 中的泛型、动态类型识别 RTTI 和变体类型的使用。
当然,仍有一些老家伙喜欢模板,但在我看来,作为程序员,这是一个该退休的信号。
模板作为过时的编译时宏替换方法的遗留物,实际上早已失去了与面向对象编程的相关性。
在现代语言中,这些任务都由运行时工具来解决,例如 C# 中的泛型、动态类型识别 RTTI 和变体类型的应用。
当然,仍有一些老家伙喜欢模板,但在我看来,作为程序员,这是一个该退休的信号。
有趣的是,模板早已远离宏替换,而是作为一个独立的范例成功地存在着。
C# 中的泛型只是缩小了的模板,实际上不是运行时的模板,而是编译时的模板,因此它们的速度更高)。
但仅仅是 RTTI 和变体类型就暗示了一些不好的想法....
____________________
当然,这一切都很酷。但在 MQL5 中只有模板函数,没有类(会有吗?)因此,目前的工具无法实现模板上的列表。
有趣的是,模板早已远离宏替换,而是作为一个独立的范例成功地存在着。
C# 中的泛型只是非常精简的模板,一般来说,不是运行时间而是编译时间,因此使用泛型的速度更高)。
但仅仅是 RTTI 和变体类型就暗示了一些不好的想法....
____________________
当然,这一切都很酷。但在 MQL5 中只有模板函数,没有类(会有吗?)因此,目前的工具无法实现模板上的列表。
您很高兴,因为化石范式是您对上个世纪的温馨回忆,而且似乎是一个详尽的知识包袱。
但没有必要因此而淘汰现代方法,因为 MQ 会认为他们的客户怀念老祖宗的 Macro Assembler 和 ANSI C,而忽略改进 MQL5 的建议。
。
由于没有模板,您可以用宏来实现,我想甚至有人写过一篇关于这个主题的文章(用 宏代替模板)+stl 中的类似算法也是用宏来 实现的。但在我看来,所有这些都应该放在标准库 的模板中,自己编写容器是错误的(仅对教学有用),使用数组更容易做到这一点。
更新:不需要宏上的算法,函数模板是可用的。我不喜欢虚拟插入/...,最好在调试模式下使用类型检查断言。
您好、
我尝试编译 test_MQL5_List.mq5 时,出现了以下错误:
m_head' - 常量对象的成员不能被修改 CiSingleList.mqh 504 9
'm_tail' - 常量对象的成员不能被修改 CiSingleList.mqh 505 9
'm_size' - 常量对象的成员不能被修改 CiSingleList.mqh 496 9