Erreurs, bugs, questions - page 1201

 
Que faire des spammeurs sur le marché ? Je me suis plaint, le spammeur a été banni pendant 24 heures, il a été débanalisé, mais sa merde est toujours là. Ou est-ce normal ? La page de discussion sur les produits n'est-elle pas destinée aux commentaires des clients ?
 
Motoellesse:

Aide à l'installation de META TRADER 4 sur OS MAVERICKS, TOUS LES PROGRAMMES TÉLÉCHARGÉS, JOUER SUR MAC, TOUT NOUVEAU, TOUT DONNE ERREUR.

/*modérateur : envoyer le texte de l'erreur dans un fichier*/

 
Motoellesse:

2 - Avant le débogage.

3 - après.

Il y a peut-être des différences, je ne comprends rien du tout).

Merci beaucoup)

Dossiers :
 

Erreur de compilation

class A {
public:
        void f() const { a = 1; } //member of the constant object cannot be modified
        static int a;
};
int A::a = 0;

alors que const ne doit pas suivre statique

De plus, il s'agit d'une protection factice, car static est modifié par la fonction h() habituelle et A::f() const ne le saura même pas.

class A {
public:
        void f() const { h(); } //все равно поменяли значение (а)
        static int a;
};
int A::a = 0;

void h()
{
        A::a = 1;
}
 
A100:

Une erreur dans le fonctionnement des fonctions virtuelles

Résultat : A::f(), devrait être B::f()

Merci pour le post, corrigé.
 
A100:

Erreur de compilation

alors que const ne doit pas suivre statique

De plus, il s'agit d'une protection factice, car static est modifié par la fonction h() habituelle et A::f() const ne le saura même pas.

Merci pour le post, corrigé.
 

Erreur de compilation 358 dans tous les cas d'appel de h( A* a)

class A {
};

class B {
public:
	B() : a1( NULL ), a2( NULL ), a3( NULL ), a4( NULL ) {}
        void f() const {
                h( a1 ); // не обоснована (1)
                h( a2 ); // не обоснована (2)
                h( a3 ); //    обоснована (3)
                h( a4 ); //    обоснована (4)
        }
              A *       a1;
              A * const a2;
        const A *       a3;
        const A * const a4;
};

void h( A* a )
{
}

Elle n'est justifiée qu'en (3) et (4) car elle n'est pas h( const A* a)

Une situation similaire a été corrigée précédemment https://www.mql5.com/ru/forum/1111/page1218#comment_1058402 mais la raison est probablement différente puisque la présence de const dans la déclaration void f() const influence l'apparition de l'erreur et qu'il n'y avait pas de fonctions membres.

 

Il ne compile pas dans la build 976 (erreur 358, mais diffère des erreurs décrites précédemment dans la build 975).

class A {};
struct S { int s; };

void h1( A* a ) {}
void h2(       S& s ) {}
void h3( const S& s ) {}

class B {
public:
        void    f1() const { h1( this.a ); } //не обоснованная и возникла только в build 976
//      void    f2() const { h2( this.s ); } //   обоснованная ошибка в build 976
        void    f3() const { h3( this.s ); } //нормально
        A* a;
        S  s;
};
La raison pourrait être que la build 976 a corrigé l'erreur relative au fait qu'une fonction normale appelée depuis une méthode de classe const pouvait modifier les membres de la classe qui lui étaient passés par une référence non const&. Mais ici, le pointeur est un membre de la classe et sa valeur est garantie de ne pas être modifiée lors de l'appel de h( A* a), mais peut seulement être modifiée lors de la déclaration de h( A* &a )
 
A100:

Ne compile pas dans la build 976 (erreur 358, mais diffère de la description précédente en ce qu'aucune erreur ne s'est produite dans la build 975).

La raison pourrait être que la build 976 a corrigé l'erreur relative au fait qu'une fonction normale appelée depuis une méthode de classe const pouvait modifier les membres de la classe qui lui étaient passés par une référence non const&. Mais ici le pointeur est un membre de la classe et sa valeur est garantie de ne pas être modifiée lors de l'appel de h( A* a) mais peut être modifiée seulement lors de la déclaration de h( A* &a )
Merci pour le post, corrigé.
 
lezzvie:

Il est bien sûr préférable de poser la question dans le forum du site www.mql4.com.

Avez-vous tout fait en suivant les instructions comme dans cet article ? - https://www.mql5.com/ru/articles/1356

oui, bien sûr)

OK, je vais demander là-bas. Merci.