Erreurs, bugs, questions - page 1136

 
TheXpert:
A* B::a = new A;

Le constructeur A n'est pas statique, essayer de l'appeler provoquera naturellement une erreur :

'A' - non static methods and members cannot be used.
 
C-4:
La contrainte est imposée par la fonction externe et c'est son droit, mais elle n'a pas le droit d'imposer des contraintes sur l'architecture des objets tiers.

Expliquez alors quel sens vous mettez en spécifiant en dessous de const - juste pour être ?

void f(const A* a) //почему не void f(A* a)
 
A100:

Expliquez alors ce que vous voulez dire en spécifiant en dessous de const - juste pour être ?

Cette question s'adresse aux développeurs de la bibliothèque standard, pas à moi. Malheureusement, si vous voulez utiliser Compare, vous devez le redéfinir en fonction de sa signature, c'est-à-dire utiliser const. Sinon, les algorithmes standard de recherche, de tri et de collage ne fonctionneront pas avec mes objets. Mais mes objets ne contiennent pas de const et, en vertu de leur structure, ne peuvent pas contenir de const. La question est donc la suivante : pourquoi ne puis-je pas utiliser des algorithmes de stockage standard simplement parce que je n'ai pas accès à ce fichu const ? ! !!!.
 
как начать работать в торговом терминале? я понятия просто не имею...
 
C-4:

Le constructeur A n'est pas statique, essayer de l'appeler provoquera naturellement une erreur :

Il s'agit en fait d'une initialisation valide. Statique dans une classe n'a rien à voir avec l'objet qui est statique.

Et le fait qu'il ne compile pas ressemble vraiment à un bug.

 

Fleder, merci pour cette précision ! Les auteurs du projet tiennent-ils un journal des modifications sur MetaEditor et le langage MQL ?

 
Tron_KZ:

Fleder, merci pour cette précision ! Les auteurs du projet tiennent-ils un journal des modifications sur MetaEditor et le langage MQL ?

Découvrez-le ici.
 
C-4:
La question est donc de savoir pourquoi je ne peux pas utiliser les algorithmes de stockage standard simplement parce que je ne peux pas accéder à cette fichue const. ! !!!

Annonce

void f(const A* a)
ne signifie pas que la classe A ne doit avoir que des méthodes constantes. Cela signifie seulement que dans f() lui-même, seules les méthodes const peuvent être appelées.
 
TheXpert:

C'est en fait l'initialisation correcte. Un statik dans une classe n'a rien à voir avec un objet qui est un statik.

Et le fait qu'il ne compile pas ressemble vraiment à un bug.

J'ai écrit au Service Desk, mais j'aimerais une réponse plus rapide de la part des développeurs.
 
A100:

Annonce

ne signifie pas que la classe A ne doit avoir que des méthodes constantes. Cela signifie seulement que seules les méthodes constantes peuvent être appelées dans f() lui-même.

Je suis en quelque sorte conscient de cela. Le problème est que Compare est virtuel et qu'il s'agit en fait de MA fonction de comparaison PERSONNELLE. J'avais auparavant le droit d'utiliser des méthodes non statiques dans MA fonction, mais on m'a maintenant privé de cette possibilité.

Je ne peux pas utiliser mon propre Compare sans const, car il ne sera pas appelé dans les algorithmes de la bibliothèque standard.