OOPの専門家に質問です。 - ページ 2

 
Реter Konow:

OOPでは、「オブジェクト」は、そのフィールド(プロパティ)が宣言されたクラスへの参照である。私は、オブジェクトは、プロパティの番号付けされたセットであり、各プロパティは配列のセルであると理解しています。そこが違うところです。

グラフィカルインターフェースの話題とは関係ない質問です。私は長い間、グラフィカルなライブラリをバイパスしてきたので、そこで探すものは何もありません。しかし、今はAIというテーマに興味があり、新たな課題や疑問が湧いてきました。

そして、既成のライブラリを持って、mqlと友達になり、先に進みます。なぜ車輪を再発明するのか?

 
Artyom Trishkin:
静的な階層である」というのはどういう意味か説明してください。不変・不易」?
まあ、どんなカテゴリーでも、ある一定の固定的な概念の集合がありますからね。補足することはあっても、その "土台 "は不変なのです。このようなセットは、「静的」な階層を形成する。
 
Реter Konow:

OOPでは、「オブジェクト」は、そのフィールド(プロパティ)が宣言されたクラスへの参照である。私は、オブジェクトは、プロパティの番号付けされたセットであり、各プロパティは配列のセルであると理解しています。そこが違うんです。

あなたの判断ですが、冒頭で用語の曖昧さという概念を導入していますね

アルチョム・トリシキン
中略)...そして、静的な階層の話をしているのです」の意味を説明してください。不変・不易」?

)))))

というのも、彼は自分の専門用語を持っていて、私たちは「曲当てゲーム」をしているんです。

SZZY: 私は5回転職しましたが、2回目で、チームに早く入るには、まず同僚と同じ言語でコミュニケーションできるようになること、つまり、以前から一般に受け入れられている専門用語を使って質問できるようになることが最も効果的で、そうでなければ「ここにマニュアルがあるから読んでこい」という答えが返ってくることがわかりました)) 。

 
Реter Konow:
まあ、どんなカテゴリーでも、ある一定の固定的な概念の集合がありますからね。補充はされても、その「土台」は 変わりません。このような静的な概念の集合は、「静的」な階層を形成する。

フィールド数が決まっているオブジェクトがあり、そのようなオブジェクトの階層を作る必要があるということですね?しかし、どんなオブジェクトもフィールドの数は固定されています(クラスコードでその数を自分で変更しない限り)。

意味がよくわからないのですが。カテゴリー- どういう意味ですか?"ファンデーション " とは、どういう意味ですか?

 
Igor Makanu:

あなたの場合ですが、最初から用語の曖昧さという概念を持ち込んでいるわけですから

)))))

彼は自分の専門用語を持っていて、私たちは「曲当て」をしているのです。

SZZY: 私は5回転職しましたが、2回目の転職で、チームに早く入るには、まず同僚と同じ言語でコミュニケーションできるようになること、つまり、事前に合意した専門用語を使って質問できるようになることが最も効果的で、そうでないと「ここにマニュアルがあるから読んでこい」という答えになってしまうことに気づきました)))。

静的なオブジェクトの階層を語るなら、連想配列がふさわしいということですね。そして、もし私たちがI don't know what elseの他の静的なものについて話すなら、...、ピーターに説明的な質問をすることになるのです。
 
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();
   }
}
理由: