Обсуждение статьи "Основы программирования на MQL5 - Списки" - страница 7

 
Из-за необходимости использовать switch теряется весь смысл. Если так, то можно и без лишних заморочек, поросто свой массив для объектов каждого типа. Так-что "а король-то голый".
 

Иногда кажется, что тут многие или некоторые попутали фаназии и реальность, то как хотелось бы, и то, что возможно.

Вместо того, чтобы брать лопату и копать, идет изощреное щегольство на тему лопаты: "а может здесь по кромке так подточить", "с может здесь уголок подвернуть"... На уровне лопаты все и заканчивается.

 
Integer:
Из-за необходимости использовать switch теряется весь смысл. Если так, то можно и без лишних заморочек, поросто свой массив для объектов каждого типа. Так-что "а король-то голый".

Это ж демонстрация того, что лист может содержать объекты любого типа. Плюс каждый из типов может быть динамически идентифицирован, если будет включать доп. инфу о своем типе. Эта самая "доп. инфа" слабое звено, но к сожалению MQL не предоставляет инструментов для контроля типов, поэтому без нее необойтись. Если кто-нибудь знает решение лучше: прошу код в студию, будет интересно посмотреть.

Как бы Ваш комментарий намекает, что с паттерном "шаблонный метод" Вы не имели дело)) 

 
C-4:

1. Это ж демонстрация того, что лист может содержать объекты любого типа.

2. Как бы Ваш комментарий намекает, что с паттерном "шаблонный метод" Вы не имели дело)) 

1. Это порадовало конечно. Но толку от этого?

2. Да. И...? Я много потерял? Это опять разговор не по существу а на тему как "заточить" или "подогнуть" что-то там у лопаты.

 
А вообще что такое "паттерны" про которые здесь разговаривают? Это кто-то навязал свой образ мысли и все пляшут? Почему эти паттерны возводятся в такой высокий ранг? 
 
Integer:

1. Это порадовало конечно. Но толку от этого?

2. Да. И...? Я много потерял? Это опять разговор не по существу а на тему как "заточить" или "подогнуть" что-то там у лопаты.

Дык задача-то какая была? Что надо было сделать? Вроде просили показать работу разных классов с одним узлом. 
 

У меня вот тоже получилось засунуть разные объекты в один массив, и заметьте, более наглядно, ибо ничего лишнего:

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:
Дык задача-то какая была? Что надо было сделать? Вроде просили показать работу разных классов с одним узлом. 
Показали. Это классно конечно. Но как выяснилось, это не все что надо. 
 
Integer:

У меня вот тоже получилось засунуть разные объекты в один массив, и заметьте, более наглядно, ибо ничего лишнего:

Что с того? А ничего.  Перегрузка не срабатывает, нужно регистрировать тип, потом через switch. Вот и вся радость.

Ничего лишнего? Да у Вас классы избыточны на 100%. Все методы и данные cl1 практически полностью дублируются классом cl2, в то время как base пустой. 

Причина обращения: