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

 
Реter Konow:

在OOP中,"对象 "是对一个类的引用,它的字段(属性)在其中被声明。我把对象理解为一个编号的属性集,每个属性都是数组中的一个单元。这就是区别。

这些问题与图形界面的主题无关。我早就绕开了图形库,在那里没有什么可找的。但是,我现在对人工智能的话题感兴趣,这带来了新的挑战和问题。

那就拿一个现成的库,和mql交朋友,然后继续。为什么要重新发明车轮?

 
Artyom Trishkin:
解释一下你说的"......这是一个静态的层次结构 "是什么意思。恒定不变的"?
那么,任何类别都有一定的静态概念集。它可以被补充,但其 "基础 "是不变的。这样的集合形成了一个 "静态 "的层次结构。
 
Реter Konow:

在OOP中,"对象 "是对一个类的引用,它的字段(属性)在其中被声明。我把一个对象理解为一组有编号的属性,每个属性都是数组中的一个单元。这就是区别。

你说了算,但你一开始就在术语中引入了模糊性的概念

阿尔乔姆-特里什金
解释一下你说的"......而且我们说的是一个静态的层次结构。恒定不变的"?

)))))

他有自己的术语,我们在玩 "猜猜看 "的游戏。

SZZY:我换了5次工作,但在第2次之后,我意识到,要想快速进入团队,你需要学会与同事用同样的语言交流,即能够用之前普遍接受的技术术语来提问--这是最有效的,否则你会得到一个答案 "这是手册,去读吧")

 
Реter Konow:
那么,任何类别 都有一定的静态概念集。它可能被补充,但其"基础 " 是不变的。这种静态的概念集形成了一个 "静态 "的层次结构。

你的意思是,你有一个具有固定字段数量的对象,你需要创建一个这样的对象的层次结构?但任何对象都有一个静态的字段数量(只要你不在类的代码中自己改变它们的数量)。

我不太明白你的意思。类别- 你是什么意思?"基础"- 你是什么意思?

 
Igor Makanu:

你的情况,但你从一开始就引入了一个术语模糊的概念

)))))

他有自己的术语,我们在玩 "猜调 "的游戏。

SZZY:我换了5次工作,但在第2次之后,我意识到,要想快速进入团队,首先必须学会与同事用同样的语言交流,即能够用事先约定好的技术术语提出问题--这是最有效的,否则你得到的答案是 "这是手册,去读吧"))。

你看--如果我们谈论的是静态对象的层次结构,那么一个关联数组是有秩序的。如果我们谈论其他一些我不知道是什么的静态性,那么......,那么这就向彼得提出了一个解释问题。
 
Artyom Trishkin:

你的意思是,你有一个具有固定字段数量的对象,你需要创建一个这样的对象的层次结构?但任何对象都有一个静态的字段数量(直到你在类代码中自己添加它们)。

我不太明白你的意思。类别- 你是什么意思? "基金会--你是什么意思?

一个有固定字段数的对象则不同。这里有一个概念的哲学背景,而不是纲领性的。你应该很了解这一点。在哲学的观点中,对象是一个实体,以命名的属性集来表示。属性是一个对象的强制性属性,一般来说是任何实体(过程、状态、价值...)的强制性属性。一个类别是一个属性而不是一个对象,作为一个属性,它是一个变量。那么它的子类别的列表就是它在变量属性状态下的值的列表。

此外,类别层次结构是一套静态的关系。它反映了层次结构中链接的嵌套。

它是一幅世界的图画,以知识库的形式表示。

 
Реter Konow:

具有不变的字段数的对象是不同的。这里的概念有一个哲学背景,而不是纲领性的背景。你应该很了解这一点。从哲学上讲,一个对象是一个实体,以一组命名的属性来表示。属性是一个对象的强制性属性,一般来说是任何实体(过程、状态、价值...)的强制性属性。一个类别是一个属性而不是一个对象,作为一个属性,它是一个变量。那么它的子类别的列表就是它在可变属性状态下的值的列表。

此外,类别层次结构是一套静态的关系。它反映了层次结构中链接的嵌套。

它是一个以知识库形式呈现的世界图景。

彼得,你把我说成是某种强硬的哲学家。然而,这根本不是事实。我以一套绝对有限的概念进行操作,这些概念符合OOP的一般概念。

如果我们谈论世界的图景,任何生命体都可以被称为物体。每个生物都有自己的一套品质,这些品质明确地告诉我们它可以被归入哪一类生物。但所有生物都有基本属性,而且它们是不可改变的--这就是你所说的 "基础 "吗?

 
Artyom Trishkin:

彼得,你把我说成是某种强硬的哲学家。然而,这根本不是事实。我用一套非常有限的概念来操作,这套概念符合OOP的一般概念。

如果我们谈论世界的图景,任何生命体都可以被称为物体。每个生物都有自己的一套品质,这些品质明确地告诉我们它可以被归入哪一类生物。但所有生物都有基本属性,而且它们是不可改变的--这就是你所说的 "基础 "吗?

是的,这就对了。每个物体都有基本属性。每个人都属于一个类别,而这个类别又嵌套在另一个类别中,而这个类别又嵌套在下一个类别中,以此类推,一直到抽象的顶端。从任何特定的物体到它的类别、超类别和超类别的这种 "路径 "是静态的。因此,我引入了基础的概念,即类别之间不可改变的关系。因此出现了建立等级制度的任务。但也许内存和计算机能力对于建立复杂的嵌套结构来说并不理想。也许技术上的限制将不允许有效地实施这一点。

 
Реter Konow:

是的,没错。每个物体都有基本属性。而每个对象都属于一个类别,这个类别又嵌套在另一个类别中,这个类别又嵌套在下一个类别中,以此类推,一直到抽象的顶端。从任何特定的物体到它的类别、超类别和超类别的这种 "路径 "是静态的。因此,我引入了基础的概念,即类别之间不可改变的关系。 因此出现了建立等级制度的任务。但是,也许内存和计算机能力对于建立复杂的嵌套结构并不理想。也许技术上的限制将不允许有效地实施这一点。

生物。

植物群/动物群

亚种

种类

家庭

等。

这就是你想要的吗?

嗯,这是从基本实体 "Entity "简单继承而来。

但你可以更深入地了解--有单细胞/多细胞之分,这都适用于生物。但也有非生物的。这一切都取决于你需要找到一个基础对象的属性,并从它们那里继承的任务。

如果你真的被撞得头破血流,你可以深入到原子,并开始把它们分成各种成分,以寻找一个基本的母体物体(注意--裂变反应可能变成连锁反应,你会摧毁半个世界:)

 
Реter Konow:

你如何对对象及其属性进行OOP循环?

例如,我执行一个循环,如下所示。

如果我对你的代码理解正确的话,这里是它的OOP对应部分。

class MyClass
{
public:
   int _X_SIZE;
   color _this_state_color;
   
   int props[];
   
   void Redraw();
};

MyClass* G_CORE[obj_total];

//Цикл по объектам в поиске нужного значения конкретного свойства.

for( int a1 = 0; a1 < obj_total; a1++ )
{
   if( G_CORE[a1]._X_SIZE == THIS_SIZE )
   {
      G_CORE[a1]._this_state_color = clrWhite;
      G_CORE[a1].Redraw();
   }
}

//Цикл по свойствам в поиске неверного значения

for( int a1 = 0; a1 < prop_total; a1++ )
{
   if( G_CORE[ELEMENT].props[a1] > Max_value )
   {
      G_CORE[ELEMENT].props[a1] = Max_value;
      G_CORE[ELEMENT].Redraw();
   }
}