MQL5中的OOP问题

 

昨天出现了一个问题,所以我决定向我的兄弟们请教)

2016年5月21日星期六,我正在向一个人解释OOP的基础知识,用一个标准库 作为例子。他曾经用MQL4编程,然后休息了5年,决定回来。我已经开始向他介绍MT5套期保值,因为我自己在那里重新做了一切。

无论看起来多么奇怪,这个人(马克西姆,我指的是你,如果你正在读这篇文章的话:)已经理解了OOP的基础知识,我们甚至已经成功地用调试器下的标准库的例子来完成最重要的部分。

但是!!!我答应过要录音的,但由于技术原因,一切都飞到了喵喵(()

我承诺,我将准确地制作关于OOP的视频小抄,我想,每个10分钟。

问题。

推荐一个关于MQL5中OOP的话题,时间为10分钟。 我会在YouTube上发布,这对每个人都是有用的。

------------------

写下所有感兴趣的东西,我会整理出来,我会在空闲时间内尽量满足你的要求。

好运))。

 
Alexey Volchanskiy:

昨天出现了一个问题,所以我决定向我的兄弟们请教)

2016年5月21日星期六,我正在向一个人解释OOP的基础知识,用一个标准库 作为例子。他曾经用MQL4编程,然后休息了5年,决定回来。我已经开始向他介绍MT5套期保值,因为我自己在那里重新做了一切。

无论看起来多么奇怪,这个人(马克西姆,我指的是你,如果你正在读这篇文章的话:)已经理解了OOP的基础知识,我们甚至已经成功地用调试器下的标准库的例子来完成最重要的部分。

但是!!!我答应过要录音的,但由于技术原因,一切都飞到了喵喵(()

我承诺,我将准确地制作关于OOP的视频小抄,我想,每个10分钟。

问题。

推荐一个关于MQL5中OOP的话题,时间为10分钟。 我会在YouTube上发布,这对每个人都是有用的。

------------------

写下所有感兴趣的东西,我会整理出来,我会在空闲时间内尽量满足你的要求。

好运))。

Alexey,在帮助中最少涉及的地方做一些例子--指针、函数指针、模板类的工作等等。虽然,说实话,在我看来,这样一个关于C++的视频很丰富,它不会增加知识,要增加知识,你需要文献、网络研讨会和勤奋。
 
coderex:
Alexey,在帮助中最少涉及的地方做例子--指针、函数指针、与模板类一起工作等等。虽然,坦率地说,在我看来,这样一个关于C++的视频很丰富,它不会以任何方式增加知识,你需要文献、网络研讨会和勤奋来加强它。
在MQL中没有指针,有的是描述符)最近引入了函数的指针(条件),这是某种拐杖,以适应 "所有的交易员都是自杀性的,不要给他们指针 "的一般概念。
 
Alexey Volchanskiy:
在MQL中没有指针,有的是句柄))最近引入了函数的指针(条件),这是一种拐杖,以适应 "所有的阿尔戈交易商都是自杀性的,他们必须不使用指针 "的一般概念。

阿列克谢,不要拘泥于文字 :)如果我写的是 "描述词",出于某种原因,我相信你不会立即理解我。至于最近出台的和很久以前出台的,并不能改变本质,这些关于帮助的问题都是悬而未决的,没有一个字或一点点的内容。而这些名字,不管它们在C++和MQL方面的表现如何不同,它们看起来都是一样的,至少,开发者是想这样做的。我甚至看到他们已经推出了指针式比较:)虽然说实话,对于MT来说,我无法想象在哪里使用它。

但同样,我认为,如果你能涉及这些问题,许多编码新手会对你表示感谢。我前几天看过你的视频;你知道如何把事情解释得如此清楚 :)

 
coderex:

阿列克谢,不要拘泥于文字 :)如果我写的是 "描述词",出于某种原因,我相信你不会立即理解我。至于最近出台的和很久以前出台的,并不能改变本质,这些关于帮助的问题都是悬而未决的,没有一个字或一点点的内容。而这些名字,不管它们在C++和MQL方面的表现如何不同,它们看起来都是一样的,至少,开发者是想这样做的。我甚至看到他们已经推出了指针式比较:)虽然说实话,对于MT来说,我无法想象在哪里使用它。

但同样,我认为,如果你能涉及这些问题,许多编码新手会对你表示感谢。我曾经看过你的视频,你知道如何把人解释清楚 :)

我认为,在任何情况下,你都不应该把教育视频作为帮助的扩展版本。目的是为了教育,而不是照亮那些不值得的细节。
 
Alexey Volchanskiy:

问题。

建议一个关于MQL5中OOP的话题,时间为10分钟,我会把它放在YouTube上,也就是说,它对每个人都是有用的。

OOP应该在没有任何代码和所有像类、对象、指针等深奥的术语的情况下进行解释。

经典的编程课程是如何进行的?起初,学生痛苦地试图从人类思维转向编程基础知识(循环、函数、变量和其他 类似需要 "知识包袱 "的东西)。然后,当混乱的函数、变量和if形成一些或多或少的有序结构时,学生被告知:"看:有这样一种东西,即OOP。忘掉以前教给你的东西,重新开始像人一样思考"。随之而来的是模板的断裂,刚刚好不容易得到的 "知识包袱 "被扔到了垃圾堆里,而这个人发现自己在天地之间。自然,这个 "PLO "会在几年内被记起,成为一个恶梦,大脑的剩余部分会出现颤抖和疼痛(其他部分已经被新知识烧焦)。

不,我明确指出,一个人不应该学习编程。相反,它是有害和危险的。相反,有必要进行思维 教育。随之而来的是古典学习方法的彻底失败。

 
Vasiliy Sokolov:
在我看来,你绝不可能从一个培训视频中制作出一个扩展版的《帮助》。任务是教育,而不是照亮那些不值得的细节。

阿列克谢询问了论坛用户的意见,我给他写了我的意见,会有什么结果,只有阿列克谢知道 :)

顺便说一句,如果到处都没有相关信息,怎么能学习呢?我知道这一点,因为我是用C++编写的,而那些只学习MQL5的人不会知道这些细节,因为参考资料中没有提到一个字:)

 
你想有能力地学习OOP吗?- 学习UML
 

Vasiliy Sokolov:

然后,当你头脑中混乱的函数、变量和if形成某种或多或少的有序结构时,学生被告知:"看:有一种东西叫OOP。忘掉以前教给你的东西,重新开始像人一样思考"。然后是模板的断裂,刚刚通过巨大努力获得的 "知识包袱 "被扔到了垃圾桶上,这个人发现自己处在地球和天堂之间。

嗯,你太过分了。一个人最初只从事了OOP。至少,通过简单地冲泡一杯咖啡。这些模式从何而来?IMHO,不聪明的教师的废话,把他们的问题推给学生。
 

不要用OOP来吓唬人。

你不需要知道OOP就可以在MQL5中创建良好的EA或其他东西。你甚至不需要知道类或指针这个词。

OOP多用于创建大型任务和综合体,特别是在有团队合作的时候。

而在MQL5中,你可以不用OOP。

我必须补充一点,10多年来,我一直参与培训那些想在外国公司工作的程序员,这些公司的主要要求是具备OOP的知识。

我这样说是为了不让你认为我是OOP的反对者。只是需要按原定计划使用,不要让生活复杂化。

 

当程序变得更加复杂时,对OOP的理解就会自行出现。程序员开始将代码表分割成几个函数,需要在各个函数之间传输结果,很快他就开始怀疑通过函数参数传输一切不是最好的解决方案,很可能他将开始创建全局变量,一个人的OOP几乎成熟了,唯一剩下的就是将逻辑上相关的函数和它们的私有数据隔离。我的经验:早在MCL4上,我就开始创造这样的东西。

// file_1.mqh
int name1_counter = 0;
int name1_data = 0;
double name1_value = 0;
void name1_action() {name1_counter++; name1_data = ;}
int name1_get() {return }

// file_2.mqh
int name2_counter = 0;
int name2_data = 0;
double name2_value = 0;
void name2_action() {}
int name2_get() {}


我甚至不知道任何OOP,但它几乎就在那里(是的,只有一个实例,但骨架已经准备好)。 我将带领受训者完成这些步骤。从一张int's和if's开始,逐步构建代码。最后,一个人几乎会自己到达OOP,最主要的是他会明白他是如何到达的。

我记得很久以前读过一本关于这种 "神奇 "OOP的书。该书的高潮是对虚拟函数的演示,说这就是OOP的力量。我应该把这种作者的手撕下来。到目前为止,我还没有遇到过任何像样的书。