OOP代码能做什么,而程序性代码不能? - 页 2 12345 新评论 Alain Verleyen 2016.05.23 12:36 #11 Doerk Hilger: 编程GUI是我作为一个程序员所做的最多的事情。它不可能编码一个完整的GUI,它需要通过if then else在几个方向上进行交流。你需要那么多的语句,代码会变得不可读,而且最后会太慢,导致无法达到目标。事实如此。我不会用程序性语言建立一个图形用户界面来证明你是错的。但我可以毫不怀疑地证明。顺便说一下,在OOP中也很容易写出不可读和慢得多的代码,正如你所知道的,Metaquotes标准库 就是一个很好的证明。 Alain Verleyen 2016.05.23 12:45 #12 Doerk Hilger:...由于CPU对OOP一无所知,你当然可以不通过使用指针和复杂的数组来编码一切。但这是很荒谬的。我也可以雇佣10000人,在胶片上实时绘制我的屏幕内容,并通过投影仪在墙上按顺序播放。这也能达到目的吗?你同意Windows操作系统提供了一个好的图形用户界面吗?据我所知,它是用C语言写的,是程序性语言,不是OOP。 如果你认为一个复杂的程序只能用OOP来构建,你就错了,Dirk。你应该解释一下为什么用OOP来编码会更好。 Stanislav Korotky 2016.05.23 13:15 #13 Doerk Hilger: 呃,来吧;)并非如此;)如果本地的东西能以某种奇怪的方式完成工作,那么它的指针,但在MQL中有限制。如果是其他的......代码会变得很荒谬。函数指针 已经在MQL5中被引入,MQL4可能也会支持这个功能。程序性代码不会是荒谬的,因为在OOP成为主流之前,它是多年来唯一的编码方式。 与类似的OOP相比,程序性代码一般看起来更复杂,更难理解,仅此而已。 Stanislav Korotky 2016.05.23 13:18 #14 Alain Verleyen: 我强烈怀疑OOP是一种更短的编码方式。 当然,我指的不是一个函数的微不足道的情况,而是一种需要代码分解、依赖性控制和其他类似人员的现实世界的任务。 Doerk Hilger 2016.05.23 14:09 #15 Alain Verleyen:你同意Windows操作系统提供了一个良好的图形用户界面吗?据我所知,它是用C语言写的,是程序性语言,不是OOP。如果你认为一个复杂的程序只能用OOP编写,那你就错了,Dirk。你应该解释为什么用OOP编码更好。我完全是用Assembler编码GUI的。但在汇编程序中我可以使用指针,在C语言中我可以使用指针,当然Windows的基础不是OOP,但我们谈论的是MQL,它不支持原生的无效指针,正因为如此,你将无法用if then else来编写复杂的GUI,至少不能用一个可以使用的结果,而不会有很大的性能缺陷。这个答案已经包括了一个问题,为什么用OOP会更好--"更好 "仍然是一个错误的判断。OOP方法实现了这种指针的使用,但没有强迫你去处理这些指针。在内部,OOP是用多维数组来实现函数 和变量指针的。试图编写这样的代码就像重新发明一个轮子一样,而这个轮子永远不会像你面前的这个轮子一样滚得那么顺利。 Alain Verleyen 2016.05.23 15:28 #16 Doerk Hilger:我完全是用Assembler编码GUI的。但是在汇编程序中我可以使用指针,在C语言中我可以使用指针,当然Windows的基础不是OOP,但是我们谈论的是MQL,它不支持原生的无效指针,正因为如此,你将不能用if then else来编写复杂的GUI,至少不能用一个可以使用的结果,而不会有很大的性能缺陷。这个答案已经包括了一个问题,为什么用OOP会更好--"更好 "仍然是一个错误的判断。OOP方法实现了这种指针的使用,但没有强迫你去处理这些指针。在内部,OOP是用多维数组来实现函数和变量指针的。试图编写这样的代码就像重新发明一个轮子一样,而这个轮子永远不会像你面前的这个轮子一样滚得那么顺利。 我不是一个GUI专家,所以我不会进一步争论。我明白你的意思,因为。OOP允许创建复杂的软件,否则效率会很低或意味着太多的工作。 Carl Schreiber 2016.05.23 15:36 #17 这只是我个人的偏好,因为我的经验不多(!)。1) 我不喜欢Java,因为我99%的时间都在寻找一个函数,不知道它的名字是否存在,也不知道我是否必须自己编码......2) 我不喜欢C++,因为我必须写更多的东西,而不是写像mq4甚至Perl这样的脚本语言。3) 我不喜欢C++,因为理解别人的代码让我从一个文件跳到另一个文件,在那里我只能找到2、3行的函数,这使得我很难找到什么和如何计算S.th.。当然也有像 "计算停止 "这样的解释,但计算过程也被分割成不同文件中的几个函数。4) 我对枚举和枚举变量的数组绝对没问题。我不需要编写想象中的真实对象。GUI可能是一个不同的问题,因为它由许多其他的东西组成,这些东西可以被编码为对象,以便于重复使用它们。但一个EA需要多少个不同的对象呢?一个位置的对象?如果有很多不同的 "对象"(GUI),可能会有帮助 - 但我在这里没有看到它们。5)最后,MQ5仍然不能在客户点位上运行其回测:( <由版主编辑的离题:这与mql5无关,而是与MT5有关>。 [删除] 2016.05.23 19:54 #18 我真的很敬佩那些编码组装的人,你必须对硬件本身的工作原理有很好的了解,简直是太神奇了,今天没有人使用的艰难。 Doerk Hilger 2016.05.23 22:11 #19 coringajoker: 我真的很尊敬那些编写汇编的人,你必须对硬件本身的工作原理有很好的了解,这简直是不可思议的,今天没有人再使用了。我现在不写代码了,但在过去真的很重要。在英特尔80x86芯片上,这是实现视觉性能方面的真正优势的唯一机会。当然,这是一个我不想错过的基本知识,即使我不再需要它的细节,但你总是知道你的代码最后会发生什么,你知道如何利用它作为执行速度的优势。是啊,"美好 "的旧时光;)...但也很疯狂,甚至没有变量,没有真正的函数,没有if then else,只有寄存器、堆栈、中断和内存地址。疯狂的狗屎 :) Juan Fernandez 2016.05.24 00:37 #20 OOP是一种将代码分割成可重用的小部分的工具。但最好的部分是模板。这个功能允许你简化代码。最好的例子是数组类。在Java中你必须为类型创建一个类。在C++和Mql5中,你可以把它放在一个类中,减少多余的代码,并绕过一些当你混合基元和对象时的问题。PS: 关于ASM,它是老式的。我在第一次使用保护模式的编译器之前就使用过它,并且很有趣地超越了限制。64K段的选择器在那个时候是编码者的噩梦。每当你写错地方,你就得重启电脑:) 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
编程GUI是我作为一个程序员所做的最多的事情。它不可能编码一个完整的GUI,它需要通过if then else在几个方向上进行交流。你需要那么多的语句,代码会变得不可读,而且最后会太慢,导致无法达到目标。事实如此。
我不会用程序性语言建立一个图形用户界面来证明你是错的。但我可以毫不怀疑地证明。
顺便说一下,在OOP中也很容易写出不可读和慢得多的代码,正如你所知道的,Metaquotes标准库 就是一个很好的证明。
...
由于CPU对OOP一无所知,你当然可以不通过使用指针和复杂的数组来编码一切。但这是很荒谬的。我也可以雇佣10000人,在胶片上实时绘制我的屏幕内容,并通过投影仪在墙上按顺序播放。这也能达到目的吗?
你同意Windows操作系统提供了一个好的图形用户界面吗?据我所知,它是用C语言写的,是程序性语言,不是OOP。
如果你认为一个复杂的程序只能用OOP来构建,你就错了,Dirk。你应该解释一下为什么用OOP来编码会更好。
呃,来吧;)并非如此;)如果本地的东西能以某种奇怪的方式完成工作,那么它的指针,但在MQL中有限制。如果是其他的......代码会变得很荒谬。
我强烈怀疑OOP是一种更短的编码方式。
你同意Windows操作系统提供了一个良好的图形用户界面吗?据我所知,它是用C语言写的,是程序性语言,不是OOP。
如果你认为一个复杂的程序只能用OOP编写,那你就错了,Dirk。你应该解释为什么用OOP编码更好。
我完全是用Assembler编码GUI的。但在汇编程序中我可以使用指针,在C语言中我可以使用指针,当然Windows的基础不是OOP,但我们谈论的是MQL,它不支持原生的无效指针,正因为如此,你将无法用if then else来编写复杂的GUI,至少不能用一个可以使用的结果,而不会有很大的性能缺陷。
这个答案已经包括了一个问题,为什么用OOP会更好--"更好 "仍然是一个错误的判断。OOP方法实现了这种指针的使用,但没有强迫你去处理这些指针。在内部,OOP是用多维数组来实现函数 和变量指针的。试图编写这样的代码就像重新发明一个轮子一样,而这个轮子永远不会像你面前的这个轮子一样滚得那么顺利。
我完全是用Assembler编码GUI的。但是在汇编程序中我可以使用指针,在C语言中我可以使用指针,当然Windows的基础不是OOP,但是我们谈论的是MQL,它不支持原生的无效指针,正因为如此,你将不能用if then else来编写复杂的GUI,至少不能用一个可以使用的结果,而不会有很大的性能缺陷。
这个答案已经包括了一个问题,为什么用OOP会更好--"更好 "仍然是一个错误的判断。OOP方法实现了这种指针的使用,但没有强迫你去处理这些指针。在内部,OOP是用多维数组来实现函数和变量指针的。试图编写这样的代码就像重新发明一个轮子一样,而这个轮子永远不会像你面前的这个轮子一样滚得那么顺利。
这只是我个人的偏好,因为我的经验不多(!)。
1) 我不喜欢Java,因为我99%的时间都在寻找一个函数,不知道它的名字是否存在,也不知道我是否必须自己编码......
2) 我不喜欢C++,因为我必须写更多的东西,而不是写像mq4甚至Perl这样的脚本语言。
3) 我不喜欢C++,因为理解别人的代码让我从一个文件跳到另一个文件,在那里我只能找到2、3行的函数,这使得我很难找到什么和如何计算S.th.。当然也有像 "计算停止 "这样的解释,但计算过程也被分割成不同文件中的几个函数。
4) 我对枚举和枚举变量的数组绝对没问题。我不需要编写想象中的真实对象。GUI可能是一个不同的问题,因为它由许多其他的东西组成,这些东西可以被编码为对象,以便于重复使用它们。但一个EA需要多少个不同的对象呢?一个位置的对象?如果有很多不同的 "对象"(GUI),可能会有帮助 - 但我在这里没有看到它们。
5)最后,MQ5仍然不能在客户点位上运行其回测:( <由版主编辑的离题:这与mql5无关,而是与MT5有关>。
我真的很尊敬那些编写汇编的人,你必须对硬件本身的工作原理有很好的了解,这简直是不可思议的,今天没有人再使用了。
我现在不写代码了,但在过去真的很重要。在英特尔80x86芯片上,这是实现视觉性能方面的真正优势的唯一机会。当然,这是一个我不想错过的基本知识,即使我不再需要它的细节,但你总是知道你的代码最后会发生什么,你知道如何利用它作为执行速度的优势。
是啊,"美好 "的旧时光;)...但也很疯狂,甚至没有变量,没有真正的函数,没有if then else,只有寄存器、堆栈、中断和内存地址。疯狂的狗屎 :)
OOP是一种将代码分割成可重用的小部分的工具。但最好的部分是模板。这个功能允许你简化代码。最好的例子是数组类。在Java中你必须为类型创建一个类。在C++和Mql5中,你可以把它放在一个类中,减少多余的代码,并绕过一些当你混合基元和对象时的问题。
PS: 关于ASM,它是老式的。我在第一次使用保护模式的编译器之前就使用过它,并且很有趣地超越了限制。64K段的选择器在那个时候是编码者的噩梦。每当你写错地方,你就得重启电脑:)