Erreurs, bugs, questions - page 2808

 
A100:

Dans MQL, c'est très bien :

mais le C++ donne une erreur dans les deux cas

Quelle pourrait être une erreur dans le second cas ? Il y a tout au plus un avertissement (indice) qu'un pointeur a été déclaré mais non utilisé.

 
Veuillez résoudre le bug observé dans toutes les nouvelles versions

2020.07.26 10:54:28.285 PKFDC0:30019 passe génétique (94, 1154) testée avec l'erreur "OnInit returned non-zero code 1" dans 0:00:00.110

2020.07.26 10:54:28.289 Tester expert fichier ....\MQL5\StochasticCCI.ex5 erreur d'ouverture [2]

il n'est pas là et ne devrait pas l'être.

l'erreur est un agent de réseau après la mise à niveau, avant la mise à niveau il fonctionnait bien, l'optimiseur ne donne pas d'erreurs dans le conseiller expert sur les anciennes versions, le conseiller expert n'a pas recompilé.

la démolition complète et la réinstallation de Metatrader avec suppression de toutes les données n'ont eu aucun effet



 
Boris Egorov:
Veuillez résoudre le bug observé dans toutes les nouvelles versions

2020.07.26 10:54:28.285 PKFDC0:30019 passe génétique (94, 1154) testée avec l'erreur "OnInit returned non-zero code 1" dans 0:00:00.110

2020.07.26 10:54:28.289 Tester expert fichier ....\MQL5\StochasticCCI.ex5 erreur d'ouverture [2]

il n'est pas là et ne devrait pas l'être.

l'erreur est un agent de réseau après la mise à niveau, avant la mise à niveau il fonctionnait bien, l'optimiseur ne donne pas d'erreurs dans le conseiller expert sur les anciennes versions, le conseiller expert n'a pas recompilé.

la démolition complète et la réinstallation de Metatrader avec suppression de toutes les données n'ont eu aucun effet



Montrez-moi le code de votre appel d'indicateur, s'il vous plaît.
 
Mihail Matkovskij:

Quelle pourrait être l'erreur dans le second cas ? Il y a tout au plus un avertissement (indice) indiquant que le pointeur a été déclaré mais n'est pas utilisé.

C'est parce que ce n'est pas

class B : public A {};
il peut y avoir différents dialectes, il convient donc de vérifier auprès des développeurs dans tous les cas.
 
MetaQuotes:
Montrez le code de votre appel d'indicateur, s'il vous plaît.

Notez le post, les conseillers du peuple ont cessé de travailler ! !!!!!! https://www.mql5.com/ru/forum/347385/page5#comment_17519416

Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения
Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения
  • 2020.07.26
  • www.mql5.com
В пятницу 24 июля 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 

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

Bugs, bugs, questions

A100, 2020.07.26 01:02

Je n'ai qu'une seule erreur dans MQL :

class A {};
class B : A {};
class C : B {
                void f1( A* ) {}    //(1)нормально
                void f2() { A *a; } //(2)нормально
};

mais C++ a une erreur dans les deux cas


Veuillez expliquer pourquoi il y a un problème avec ce code ?

 
fxsaber:

Veuillez expliquer pourquoi il y a un problème dans ce code ?

Je n'en ai aucune idée ! J'ai pris cet exemple à part... Changer struct en class - leshell C++ génère une erreur :

erreur : 'class A A::A' est inaccessible

Vous pouvez le vérifier vous-même.

 

résolution du contexte. le constructeur est inaccessible par l'ancêtre en raison de l'héritage privé.

Si vous spécifiez explicitement le contexte, tout se compile

                void f1( ::A* ) {}    //(1)нормально
                void f2() { ::A *a; } //(2)нормально

_____

Ne demandez pas pourquoi un constructeur est nécessaire - je n'en ai aucune idée.

 
@A100, @TheXpert, Merci.
 
TheXpert:

En d'autres termes, il n'y a pas d'accès interne (par défaut), mais il y a un accès externe. Mais pour l'utiliser, vous devez le spécifier explicitement. Cela a du sens pour moi

Raison: