给OOP专家的一个问题。 - 页 25

 
Igor Makanu:

OOP的概念本身就意味着不写--你必须不知道方法的实现(在你的例子中,返回(SymbolSelect(m_name,select))

想象一下,而不是这句话。

你必须做大量的查询和各种检查等。- 这将花费你的时间来编写你自己的库和研究材料

假设你的任务只是使用一个类形式的现成解决方案中的一个方法--你创建一个类(对象)的实例并使用现成的Select(const bool select)方法

如果你不打算执行这样的操作,释放内存=删除对象

假设你的任务是显示一个按钮,通过按下它,你可以启用/禁用市场观察中的符号------创建你的类并封装现成的按钮类和现成的CSymbolInfo类----任务完成了

OOP范式只给出了一个类可以做什么的一般信息--你不想封装CSymbolInfo--那就从它那里继承你的类。

我相信,我不明白,我也不接受。当你有一个具体的任务,没有这些注意事项是做不到的,那么 "精神启蒙 "和理解就会到来。但就目前而言,从我的观点来看,仅仅是花哨的小玩意并不总是 合理的。不总是这样并不意味着从来没有。我 很乐意使用Ctrade班,但我不采取上述的方式。如果说文档中对SymbolSelect函数的描述并不难找,在SB中已经很难找到描述了。

伊戈尔-马卡努

HH:"一言以蔽之",OOP的本质在不了解实现的情况下 快速解决某个问题

在这种情况下,你必须知道如何调用所需的方法,在哪里找到它等等,而不是知道实现。这是编程语言中的一种语言吗?

人们可以理解,如果一个项目需要有一个对象的几个实例。但是到目前为止,除了上面提到的Artem的演示,我还没有看到任何这样的实现。在这种情况下,很明显,它更好,更容易,更简单,但我没有完全理解,正是因为没有必要,缺乏任务。为了单次使用mql5函数而改变对象是没有意义的。这是我的推理。

 
Alexey Viktorov:

在这种情况下,你需要知道如何调用正确的方法,在哪里找到它等等,而不是知道实现。这是编程语言中的一种语言吗?

看一下文件,所有公开发布的东西都有手册,可以说是道德的。

这不是一种风格,而是一种范式!- 一个概念,礼仪的规则,没有人被迫这样写,但由于某种原因,这是最常见的风格。

 
Igor Makanu:

OOP的本质 是在不了解实现的情况下快速解决一个特定的任务。

你可以通过传递一个带有数据的结构来调用一个函数,并在不知道该函数实现的情况下得到一个同样快速的解决方案。
 
Alexey Navoykov:
你可以调用一个函数,将一个带有数据的结构传入其中,并得到一个同样快速的解决方案,而无需了解该函数的实现。

是的,但你的方法会受到限制,在OOP中,你也可以继承--即使不知道实现,也可以添加到你的任务中,首先想到的是--带圆边的按钮,网上有大量的例子。

SZZ:而通过构造函数展开一个对象的逻辑是相当方便的。

 
Реter Konow:

一个类是对一个对象的描述。很好。包含该对象的属性和功能。好的。所有这些都是有序的,开放的或保护的。

那么物体本身就不在画面中了。它是在班级的范围内。从其名称和描述来看。也就是说,在OOP中,对象,正是一组属性(不仅是属性,还有功能元素--方法),但比我的更有秩序,更有封装性。(这对我来说更有意义)。

彼得,谷歌最后介绍了类,它们在内存分配、方法调用的背景下是什么,也就是说,对编译器来说,它们都转化为什么。之后大部分问题都会自己蒸发掉。
 
Petros Shatakhtsyan:

你必须阅读书籍才能理解它。至少在21天内完成VC++。

我建议你第一次使用MFC,创建一个基于CDialog的windows应用程序,创建各种对象,看看它们是如何被轻松管理的。

之后,你将丢弃你的风险。不幸的是。

嗯,那是不太可能的。关键是我发现我的方法和OOP之间几乎没有概念上的差异。我的方法也是面向对象的。 对象被封装在内核中,并有非常具体的表示。它们通过指针连接,形成复合体--元素、窗口...。如果你超越了图形,创造了不同形式的内核,其中包括更多的多样性,它将和OOP中一样好。

方法上的区别在于编写代码的风格、语法和分配功能的方法。在我的方法中,功能倾向于被合并,而在OOP中,功能倾向于被分割。功能的合并可以保证提高系统的效率和少量的语法,而功能的分割则有利于代码的可移植性。它允许模块的插入。一般来说,这些是区别。

当然,我的方法还不具备那种广泛的 "客观性"。但是,我已经有了如何解决这个问题的想法。一个内核是单一类型的,这就限制了存储在其中的属性,但一个内核不一定是单一的矩阵。它可以是一个复合型的果核。主要优点是对象的数字化表示,不需要冗长的描述、额外的语法和功能的碎片化。

但是,OOP对我来说是非常有趣的。我将从中学习)。
 
Vladimir Simakov:
彼得,最后是谷歌类,它们在内存分配、方法调用方面是什么,也就是说,编译器将其全部转换为什么。之后大部分问题都会自行消失。
好的。我一定会去查的。
 

对OOP的概念进行了大量的思考,事情是这样的。

让我们从语法和技术术语中抽象出来,留下 "类"、"对象"、"属性"、"封装"、"多态性"、"继承 "等概念。我将描述这一概念的哲学 "根源"。

意识通过 "空间"、"时间 "和 "物质 "的棱镜来感知现实(这是感觉器官的工作方式),而 "物体 "是它们持续互动的一个离散结果。

互动形式的多样性产生了各种对象,这些对象被主体的无意识 "种植 "在某个 "框架 "上。 这个框架有一个分支的、层叠的结构,被 "建造 "在无意识中,是其 "原型 "之一。该框架接受新的和新的对象(关于它们的信息),这些对象分布在其结构中。 这就是OOP概念的来源。这是模仿无意识的 "算法 "对物体进行有意识的分配和结合。 在掌握了自己的思维方法后,主体能够在大脑的 "追踪 "机制中模拟其工作--计算机。即使计算机只是大脑的可悲模仿,但人本身只感知到客观世界的影子。 级联,分支原型,是物体、属性、过程和所有信息在我们一般记忆中的分布 "模式"。它是一种生物工具,用于简化对现实的感知,构建我们周围世界的模型。 它是大自然赋予我们的。 对我们自己的 "自然"(即无意识的)信息处理机制的认识是使用OOP 所必需的自我认识水平。

在 "人工 "应用的背景下,考虑这种隐含的、生物的、促进记忆、学习和感知的 "树状 "原型。在OOP中,我们通过将对象的描述封装在类中来 "生产 "对象,在类中建立它们的属性和值。 对象的关系反映在它们的分类中,并通过属性和方法的继承从全局到私有来实现。实际上,它看起来是这样的:每一个私有对象只是一个对象,因此具有只是一个对象的所有属性+其私有属性。派生对象将把它的私有属性作为它们的共同属性,但会有它们的私有属性。此外,该链可以无限期地分支。这与对象的方法是一样的。一种方法反映了一种行动、一种互动、一个过程、一种状态的变化。对象的方法像属性一样从一般到私有分布。如果有一个一般的过程,每个离散的形式将有它自己的属性。 而这就是多态性。也就是说,与重载不同,多态性提供了一个底层函数的不同私有实现,同时保留了其基本机制。这就是 "功能性 "继承。

正如我们所看到的,OOP中的 "树状 "无处不在;无论你想出什么方案,你还是会得到一棵 "树")。但这是正确的,因为我们只是在复制我们自己无意识的信息工作模式。

 
Реter Konow:

一直在思考关于OOP的概念,这就是它。

...

艰难。

彼得,你需要进入政治。这里不需要这样的人才--说得多,说得巧妙,说得难懂,而且什么都不说。

 
Artyom Trishkin:

...

让我解释一下。底线是,OOP复制了我们记忆中信息的无意识分布。信息是以层叠和 "树状 "的方式 "摆放 "的。这是由无意识的原型(一种隐藏的机制)所制约的。人们已经 "感觉 "到了这种机制,并开始在编程中成功地应用它。OOP通过继承链实现了共同属性和函数的转移,按照我们无意识的方案。


随着对我们的意识和无意识思维如何工作有了更好的了解,我们将能够在计算机中复制其机制。我只是从技术细节中退了出来,看了看概念的根源。