Erreurs, bugs, questions - page 1422

 

Erreur pendant l'exécution

class A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
        virtual bool    f() { return g(); }
};
class B : public A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
};
void OnStart()
{
        int i = 0;
        for ( B b; b.f(); i++ )
                if ( i++ >= 3 )
                        break;
}                

Résultat : et devrait être :

 
Karputov Vladimir:
Qu'est-ce qui ne fonctionne pas exactement ? Que faites-vous et qu'obtenez-vous ? Quelles sont les erreurs ?

Le journal étant confidentiel, je vous l'envoie en message privé.

 
A100:

Fuite de mémoire.


A100, vous êtes un vrai chasseur d'insectes ! !! Continuez comme ça ! Chapeau bas à vous :)

 
Stanislav Korotky:
Il s'agit de MT4. Je l'ai essayé ces derniers jours. Build 902/32.

J'ai essayé votre exemple sur MT4/891/32 avec différents compilateurs (build : 1174, 1210)

Soit une mise à niveau... ou de revenir en arrière.

 
sigma7i:

A100, vous êtes un vrai chasseur d'insectes ! !! Continuez comme ça ! Chapeau bas à vous :)

Ainsi, on peut voir tout de suite qui utilise réellement les capacités de la POO et qui est un maître du raisonnement sur ce sujet (il y a toute une branche de maîtres).

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

AOP pour l'amour du ciel....

George Merts, 2015.10.26 19:58

Tu ne sais juste pas comment le cuisiner.

La POO est très bénéfique tant pour la structuration des programmes que pour la capacité à les supporter et à les modifier.

D'autant plus que vous dites que vous "utilisez les classes comme conteneurs pour les fonctions" - eh bien, mettez les données qui fonctionnent avec ces fonctions dans ce conteneur, et vous l'avez, la POO en action.


 
A100:

La seule façon de se débarrasser de cette erreur est de remplacer Optimize=1 dans metaeditor.ini par 0

Je n'ai pas vraiment besoin de m'en débarrasser, mais peut-être que les développeurs en ont besoin. Après tout, de telles erreurs ne devraient même pas se produire à la compilation si le compilateur fonctionne bien. C'est pourquoi je vous ai donné un exemple exact de code lorsque cela se produit.
 
Ilya Malev:
C'est pourquoi j'ai donné l'exemple exact du code quand il apparaît.
Sur la version 1210/32, il ne peut pas être répété.
N'est-ce pas ?
void OnStart()
{
        ENUM_TIMEFRAMES tf=NULL;
        if(tf==NULL)   tf=Period();
}
 
A100:

J'ai essayé votre exemple sur MT4/891/32 avec différents compilateurs (build : 1174, 1210)

Soit une mise à niveau... ou de revenir en arrière.

Non. Le Service Desk dit toujours "mettre à niveau vers la dernière version". (ce qui devrait bien sûr être correct, si seulement ils corrigeaient les bogues). J'ai détecté le problème sur la version 900, puis j'ai mis à jour la 902. Apparemment, le problème est apparu à cause de l'ajout de modèles de classe. Même si les modèles vont "danser" pendant un certain temps, je pense qu'il est préférable de ne pas les utiliser du tout.

 
A100:
Il n'y a pas de répétition sur la version 1210\32.
C'est bien ça ?
 
Ilya Malev:
Vous m'avez convaincu que si quelque chose fonctionne sur 32 bits, il n'y a aucune garantie sur 64 bits.