Erreurs, bugs, questions - page 2420

 
Andrey Pogoreltsev:

mais ses capacités couvrent maintenant entièrement les éléments dont vous avez besoin pour créer un EA.

Ces nécessités étaient déjà couvertes il y a 6 ans dans l'ancien MQL4, si vous avez une idée du niveau du langage à l'époque. Nous avons écrit des EA dans ce langage, et certains codent encore dans ce style archaïque. Tout est donc relatif.

Dans quel autre but serait-il introduit ?)

Ce point a été discuté au cours des deux dernières pages du fil de discussion.
 

Il donne une erreur ici :

void OnStart()
  {
   struct sA
     {
      int               ii[51];
     };
   struct sB
     {
      string            name;
      sA                distrib;
     };
   sB f;
  }
'distrib' - struct undefined    Test2.mq5       21      25

Ça ne se passe pas comme ça :

void OnStart()
  {
   struct sA
     {
      int               ii[51];
     };
   struct sB
     {
      //string            name;
      sA                distrib;
     };
   sB f;
  }

Cela ne fonctionne pas non plus :

struct sA
  {
   int               ii[51];
  };
struct sB
  {
   string            name;
   sA                distrib;
  };

void OnStart()
  {
   sB f;
  }

Vous trouverez ci-joint un script pour reproduire l'erreur, un script vide avec quelques lignes de code comme ci-dessus.

Dossiers :
Test2.mq5  1 kb
 

Eh bien, ça n'a pas de sens du tout :

class A
  {
   class B
     {
      class C
        {
         class D
           {
            class E
              {
               bool              YES;
              };
           };
        };
     };
  };
void OnStart()
  {
   E g;
  }

La classe E ne mérite pas d'être aussi populaire.

Il compile sans aucune erreur.

 
S'agit-il d'une erreur de compilation ?
class A
{
private:
  int i;
};

class B : public A
{
public:  
  void f( int i ) {} // declaration of 'i' hides member declaration at line 4
};
 
fxsaber:
S'agit-il d'une erreur de compilation ?
Serait-ce le bavardage ennuyeux d'un formateur à propos de conneries, qui détourne l'attention des affaires sérieuses ?
 
fxsaber:
S'agit-il d'une erreur de compilation ?
dans les plus la même chose
 
Vict:
Peut-être un formaliste ennuyeux qui parle de conneries, vous distrayant des choses sérieuses ?

quand tu seras au milieu de son enthousiasme, tu me le diras alors ?

 
fxsaber:
S'agit-il d'une erreur de compilation ?

C'est assez logique.

Comment les paramètres d'entrée d'une fonction publique peuvent-ils être privés ? Conflit d'intérêt.

Si ce paramètre privé doit être utilisé dans cette fonction, il n'est pas nécessaire de le déclarer comme entrée, car il existe déjà.

S'il s'agit d'une autre variable, il y aura bien sûr un conflit de nom dans la fonction avec la variable privée existante et il faudra donc l'appeler sous un autre nom.


ZS Il s'avère que ça n'a pas d'importance si c'est public ou privé. C'est un conflit de nom trivial. Dans la fonction f, il y aura une incertitude sur ce qu'est i - paramètre d'entrée ou variable globale de la classe parente.

 
Nikolai Semko:

la question implique que nous ne pouvons pas accéder au membre en raison de la confidentialité, mais le conflit de nom est toujours montré par le compilateur.

comme je l'ai écrit, les plus se comportent exactement de la même manière, c'est-à-dire qu'il n'y a pas d'erreur dans le compilateur et tout va bien.

 
TheXpert:

les pros se comportent exactement de la même manière

Il est bon de comprendre la situation lorsque cela aide.

Raison: