記事"MQL5プログラミングベージックス:リスト"についてのディスカッション - ページ 7

 
switchを使う必要があるため、すべての意味が失われてしまう。それなら、余計な小細工をせずとも、各タイプのオブジェクトに対して異なる配列を用意すればいい。つまり、「王様は裸だ」ということだ。
 

この場にいる多くの、あるいは一部の人々が、狂信と現実、望ましいことと可能なことを混同しているように思えることがある。

シャベルを持って掘るのではなく、シャベルをテーマにした洗練された誇示がある。すべてはシャベルのレベルで終わる。

 
Integer:
switchを使う必要があるため、すべての意味が失われてしまう。それなら、余計な小細工をせずとも、各タイプのオブジェクトに対して異なる配列を用意すればいい。つまり、「王様は裸だ」ということだ。

これは、シートがどんな型のオブジェクトでも含むことができるというデモンストレーションだ。さらに、各タイプは、そのタイプに関する追加情報を含んでいれば、動的に識別することができる。この "追加情報 "が弱点なのだが、残念ながらMQLは型制御のためのツールを提供していない。より良い解決策をご存知の方がいらっしゃいましたら、ぜひコードを投稿してください。

あなたのコメントから、「テンプレート・メソッド」というパターンを扱ったことがないことがうかがえます。)

 
C-4:

1.これは、シートがあらゆるタイプのオブジェクトを含むことができることを示すものです。

2.あなたのコメントは、あなたが「テンプレート・メソッド」パターンを扱っていないことを示唆している)))

1.もちろん、それはいいことだ。しかし、それを何に使うのですか?

2.はい、それで?損した?これまたシャベルで何かを「研ぐ」「曲げる」という会話である。

 
ここで言う「パターン」とは何だろう?自分の考え方を押し付けて、みんなが踊らされるような人のことだろうか?なぜこのようなパターンが高いランクに位置づけられているのだろうか?
 
Integer:

1.もちろん、それはいいことだ。でも、それが何の役に立つの?

2.ええ、それで?損した?これまた是非の話ではなく、スコップでそこの何かを「研ぐ」「曲げる」というテーマでの会話である。

では、課題は何だったのか?何をすることだったのか?一つのノードで異なるクラスの仕事を見せることが求められていたのでは?
 

異なるオブジェクトを1つの配列に入れることもできた:

class base{
   private:
   public:   
};

class cl1:public base{
   private:
      int m_v1;
      int m_v2;
   public:  
   void cl1(int v1,int v2){
      m_v1=v1;
      m_v2=v2;   
   }
   void f1(){
      Alert("(1) "+m_v1);
   }
   void f2(){
      Alert("(1) "+m_v2);   
   }
};

class cl2:public base{
   private:
      int m_v1;
      int m_v2;
   public:  
   void cl2(int v1,int v2){
      m_v1=v1;
      m_v2=v2;   
   }
   void f3(){
      Alert("(2) "+m_v1); 
   }
   void f4(){
      Alert("(2) "+m_v2); 
   }
};

base * a[];

int x1=1;
int x2=2;

int x()
  {
   
   return(x1=x2);
  }

void OnStart()
  {

   ArrayResize(a,10);
   
   cl1 * a1;
   
   a[0]=new cl1(1,2);
   a[1]=new cl2(3,4);  
   
}

だから何?何もない。オーバーロードは機能せず、型を登録し、switchを通す必要がある。それが喜びのすべてだ。

 
Integer:
ここで言う「パターン」とは何だろう?自分の考え方を押し付けて、みんなが踊らされるような人のことだろうか?なぜ、このようなパターンが高いランクに位置づけられているのだろうか?
いや、なんでもない。大丈夫。ある日、大勢のプログラマーが普遍的なアルゴリズムを一般化し、それを「パターン」と呼んだだけなのだ。想像してごらん、このバカどもはそれに関する本まで出版しているんだよ:))))!人は何もすることがない!
 
C-4:
仕事は何だったのか?何をするのか?異なるクラスが1つのノードでどのように機能するかを示せと言われたのでは?
そうだ。もちろん、それはクールだ。でも結局のところ、必要なのはそれだけじゃない。
 
Integer:

異なるオブジェクトを1つの配列に入れることもできた:

だから何?何もない。オーバーロードは機能せず、型を登録し、switchを通す必要がある。それだけだ。

余計なことは何もない?あなたのクラスは100%冗長だ。すべてのcl1のメソッドとデータはcl2クラスでほぼ完全に複製され、ベースは空です。