另一个有趣的事情是如何创建一个对象或组的层次结构。例如,有几个类别,每个类别包含一个有n个对象的组。OOP概念提出了哪些建立层次结构的方法?
层次结构的实现应该在其部分和循环中的层次之间提供方便的过渡。如果你在数组内建立一个层次结构,你将会留下大量的空白空间。如果它是由一个复杂的数组建立的,它将不允许自由地在链接中循环。OOP建议什么?
你如何对对象及其属性进行OOP循环?
例如,我执行一个循环,如下所示
CObj obj[]; ... for (int i=0;i<ArraySize(obj);obj[i++].CheckSomething(param));情况是这样的。而在这个类里面,在CheckSomething()方法中,所有的逻辑都被实现了。
情况是这样的。而在这个类里面,在CheckSomething()方法中,所有的逻辑都被实现了。
谢谢你。首先我们从对象中组合出数组obj[],然后做一个循环?
那么等级制度呢?而我们正在谈论的是静态的层次结构。恒定的、不可改变的。
谢谢你。首先我们从对象中组合出数组obj[],然后做一个循环?
那么等级制度呢?我们正在谈论的是一个静态的层次结构。恒定的、不可改变的。
class Class1{ ... }; class Class2{ ... }; class Class3{ Class1 class1; Class2 class2; ... };
这取决于你所追求的东西,但原则上是这样的。你同意它比你的数组要优雅得多。鉴于我强烈怀疑他们的多维 数组实际上根本不是数组,因为它们不能被传入dll,函数调用的开销很可能是一样的。
好吧,也许更优雅,我不会争论。我非常关注实用性、权宜性、简单性和便利性,我把任何语法都看成是 "人民的敌人",因为它需要注意、解析、产生错误并阻碍感知。这就是为什么我尝试使用尽可能简单甚至原始的代码结构。最主要的是,它们应该易于阅读和有效。
当然,在等级制度上有一个障碍。如果我们真的用数组来做,循环将提供更多的机会来解析链接、组、子组、子子组等等。但内存的使用效率会很低。如果我们使用类,这似乎是一个理想的解决方案。但这是为了一个 "死 "的等级制度。对于一个图像。但是,如果我们需要创建一个与之配合的引擎--我担心在这里所有的地狱将被打破))。
谢谢你。首先我们从对象中组合出数组obj[],然后做一个循环?
那么等级制度呢?我们正在谈论的是一个静态的层次结构。恒定的、不可改变的。
使用常见的术语,你不仅可能用你的问题迷惑对方,而且你会确信你的问题已经得到了回答。
OOP Wiki- 条款在此。
对于一个给定的主题,你可以制作对象实例的数组(见上面的答案),或者看看WndContainer.mqh和ArrayObj.mqh来源,它们被用来创建基于CPanelDialog的面板(你可以在文件夹ndicators/Examples/Panels/SimplePanel中找到一个现成的例子),但是它们可以与指针和列表一起工作。
在OOP中,"对象 "是指对一个类的引用,其字段(属性)在其中被声明。我所说的 "对象 "是指一组编号的属性,每个属性都是一个数组中的单元。这就是区别。
这些问题与图形界面的主题无关。我早就绕过了图形库,在那里没有什么可找的。但是,现在我对人工智能感兴趣,它提出了新的挑战和问题。
你如何对对象及其属性进行OOP循环?
例如,我执行一个循环,如下所示