Discussão do artigo "Fundamentos básicos da Programação MQL5: Lista" - página 7

 
Devido à necessidade de usar switch, todo o objetivo é perdido. Se esse for o caso, você pode fazer isso sem mexer desnecessariamente, apenas com uma matriz diferente para objetos de cada tipo. Portanto, "o rei está nu".
 

Às vezes, parece que muitas ou algumas pessoas aqui confundiram fanatismo e realidade, o que é desejável e o que é possível.

Em vez de pegar uma pá e cavar, há uma sofisticada ostentação do tema da pá: "e talvez aqui na borda, então afie-a", "com talvez aqui uma torção de canto".... Tudo termina no nível da pá.

 
Integer:
Devido à necessidade de usar switch, todo o objetivo é perdido. Se esse for o caso, você pode fazer isso sem mexer desnecessariamente, apenas com uma matriz diferente para objetos de cada tipo. Portanto, "o rei está nu".

Essa é uma demonstração de que uma planilha pode conter objetos de qualquer tipo. Além disso, cada tipo pode ser identificado dinamicamente se incluir informações adicionais sobre seu tipo. Essas "informações adicionais" são um elo fraco, mas, infelizmente, a MQL não oferece ferramentas para controle de tipos, portanto, não podemos passar sem elas. Se alguém conhecer uma solução melhor: envie o código, será interessante vê-lo.

Como se seu comentário indicasse que você não lidou com o padrão "template method")))

 
C-4:

1) Esta é uma demonstração de que uma planilha pode conter objetos de qualquer tipo.

2. Seu comentário dá a entender que você não lidou com o padrão "método de modelo")))

1. isso é bom, é claro. Mas qual é a utilidade disso?

2. Sim. E...? Eu perdi muito? Essa é novamente uma conversa sobre como "afiar" ou "dobrar" algo com uma pá.

 
Quais são os "padrões" de que estamos falando aqui? É alguém que impõe sua maneira de pensar e todos dançam? Por que esses padrões são elevados a um nível tão alto?
 
Integer:

1) Isso é bom, é claro. Mas o que isso tem de bom?

2. Sim. E...? Eu perdi muito? Essa é novamente uma conversa não sobre os méritos, mas sobre o assunto de como "afiar" ou "dobrar" algo lá na pá.

Então, qual era a tarefa? O que deveria ser feito? Pensei que fosse pedido para mostrar o trabalho de diferentes classes com um nó.
 

Também consegui colocar objetos diferentes em uma matriz e observei que ela é mais clara, pois não há nada a mais:

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);  
   
}

E daí? Nada. A sobrecarga não funciona, você precisa registrar o tipo e depois usar o switch. Essa é toda a alegria.

 
Integer:
Quais são os "padrões" de que estamos falando aqui? É alguém que impõe sua maneira de pensar e todos dançam? Por que esses padrões são elevados a um nível tão alto?
Não, não é nada, não se preocupe... Está tudo bem. É que um dia um grupo de programadores generalizou alguns algoritmos universais e os chamou de "padrões". Imagine, esses idiotas até publicaram um livro sobre eles:))))))! As pessoas não têm nada para fazer!
 
C-4:
Qual era a tarefa? O que deveria ser feito? Pensei que você tivesse pedido para mostrar como classes diferentes funcionam com um nó.
Você pediu. Isso é legal, é claro. Mas, como se vê, não é tudo o que é necessário.
 
Integer:

Também consegui colocar objetos diferentes em uma matriz e observei que ela é mais clara, pois não há nada a mais:

E daí? Nada. A sobrecarga não funciona, você precisa registrar o tipo e depois usar o switch. Essa é toda a alegria.

Nada a mais? Suas classes são 100% redundantes. Todos os métodos e dados da cl1 são quase completamente duplicados pela classe cl2, enquanto a base está vazia.