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 ?
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: 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.
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.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
A* B::a = new A;Le constructeur A n'est pas statique, essayer de l'appeler provoquera naturellement une erreur :
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 ?
Expliquez alors ce que vous voulez dire en spécifiant en dessous de const - juste pour être ?
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 ?
Fleder, merci pour cette précision ! Les auteurs du projet tiennent-ils un journal des modifications sur MetaEditor et le langage MQL ?
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
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.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.
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.