Cet exemple est à peu près le même que le premier ;-). Vous avez ouvert ma lettre mais ne l'avez pas lue ? Que voulez-vous obtenir en déclarant à nouveau les méthodes dans le descendant mais sans les définir ? Pour appeler l'implémentation de base sans en avoir une nouvelle, il n'est pas nécessaire de les mentionner dans le descendant.
Stanislav Korotky: Cet exemple est à peu près le même que le premier ;-). Ma lettre a été ouverte, mais vous ne l'avez pas lue ? Que voulez-vous obtenir en redéclarant les méthodes dans le descendant, mais sans les définir ? Pour appeler une implémentation de base sans en avoir une nouvelle, il n'est pas nécessaire de les déclarer dans le descendant.
Je veux voir seulement 10 méthodes héritées plus les méthodes créées dans la classe descendante. Je n'ai pas besoin de 190 méthodes, qui ne seront pas liées à la classe actuelle en aucune façon.
Par exemple, j'ai une classe de base où toutes les propriétés maximales des formes, largeur, hauteur, coins, rayons, couleurs, surface sont décrites.
Sur la base de ces méthodes de propriété, je crée une classe dérivée de cercle qui utilise les méthodes de la classe parente, rayon, couleur, surface... Mais je n'ai pas besoin de coins et de largeur ici ...
Sur la base de ces méthodes, je crée une classe de triangle descendante qui utilise les méthodes de la classe parente, couleur, surface, coins... Mais je n'ai pas besoin de rayon ici...
Quand je demande pourquoi, la classe parent a un groupe de méthodes qui sont communes à toutes ou communes à un groupe de formes, comme la méthode couleur, style.
Je veux voir seulement 10 méthodes héritées plus les méthodes créées dans la classe descendante. Je n'ai pas besoin de 190 méthodes, qui ne seront pas liées à la classe actuelle en aucune façon.
Par exemple, j'ai une classe de base où toutes les propriétés maximales des formes, largeur, hauteur, coins, rayons, couleurs, surface sont décrites.
Sur la base de ces méthodes de propriété, je crée une classe dérivée de cercle qui utilise les méthodes de la classe parente, rayon, couleur, surface... Mais je n'ai pas besoin de coins et de largeur ici ...
Sur la base de ces méthodes, je crée une classe de triangle descendante qui utilise les méthodes de la classe parente, couleur, surface, coins... Mais je n'ai pas besoin de rayon ici...
Lorsque j'ai demandé pourquoi, la classe parentale a un groupe de méthodes qui est commun à tous ou commun à un groupe de formes, par exemple la méthode couleur, style.
Je ne comprends pas : cette question - une question ou une réponse souscrite ? En général, ils le font - dans la classe de base, c'est commun, puis dans les descendants, ils ajoutent des particularités. Pourquoi le faire dans l'autre sens ? Quel est le but ?
Mais même si vous n'allez pas plus loin, j'ai déjà suggéré une option - insérer un descendant intermédiaire dans lequel toutes les propriétés et méthodes inutiles sont déplacées vers la partie privée.
Il y a 200 méthodes dans la classe parent, je veux voir seulement 10 méthodes héritées plus celles créées dans la classe enfant, je n'ai pas besoin de 190 méthodes supplémentaires qui ne sont pas liées à la classe actuelle.
Pour ce faire, vous devez déclarer l'héritage comme protégé ou privé, puis surcharger les méthodes dont vous avez besoin.
Pour ce faire, vous devez déclarer l'héritage comme protégé ou privé, puis surcharger les méthodes que vous voulez.
Stanislav Korotky:
Je ne comprends pas : cette question est-elle une question ou une réponse incomplète ? En général, ils procèdent de la manière suivante : dans une classe de base, on trouve le général, puis dans les descendants, on ajoute les particuliers. Pourquoi faire le contraire ? Quel est le but ?
Mais même si vous n'allez pas trop loin, j'ai déjà suggéré une option - insérer un descendant intermédiaire dans lequel toutes les propriétés et méthodes inutiles sont déplacées vers la partie privée.
Merci.
Alexey, ton exemple ne fonctionne pas, dans tous les cas, l'enfant reçoit les méthodes du parent, qui ne devraient pas être vidées.
Karputov Vladimir: Print(MQLInfoString(MQL_PROGRAM_NAME)) ; renvoie le nom court de l'indicateur. Si aucun nom court n'est spécifié, le nom complet sera renvoyé.
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.
Voici un exemple
Cet exemple est à peu près le même que le premier ;-). Ma lettre a été ouverte, mais vous ne l'avez pas lue ? Que voulez-vous obtenir en redéclarant les méthodes dans le descendant, mais sans les définir ? Pour appeler une implémentation de base sans en avoir une nouvelle, il n'est pas nécessaire de les déclarer dans le descendant.
Je veux voir seulement 10 méthodes héritées plus les méthodes créées dans la classe descendante. Je n'ai pas besoin de 190 méthodes, qui ne seront pas liées à la classe actuelle en aucune façon.
Par exemple, j'ai une classe de base où toutes les propriétés maximales des formes, largeur, hauteur, coins, rayons, couleurs, surface sont décrites.
Sur la base de ces méthodes de propriété, je crée une classe dérivée de cercle qui utilise les méthodes de la classe parente, rayon, couleur, surface... Mais je n'ai pas besoin de coins et de largeur ici ...
Sur la base de ces méthodes, je crée une classe de triangle descendante qui utilise les méthodes de la classe parente, couleur, surface, coins... Mais je n'ai pas besoin de rayon ici...
Quand je demande pourquoi, la classe parent a un groupe de méthodes qui sont communes à toutes ou communes à un groupe de formes, comme la méthode couleur, style.
Je veux voir seulement 10 méthodes héritées plus les méthodes créées dans la classe descendante. Je n'ai pas besoin de 190 méthodes, qui ne seront pas liées à la classe actuelle en aucune façon.
Par exemple, j'ai une classe de base où toutes les propriétés maximales des formes, largeur, hauteur, coins, rayons, couleurs, surface sont décrites.
Sur la base de ces méthodes de propriété, je crée une classe dérivée de cercle qui utilise les méthodes de la classe parente, rayon, couleur, surface... Mais je n'ai pas besoin de coins et de largeur ici ...
Sur la base de ces méthodes, je crée une classe de triangle descendante qui utilise les méthodes de la classe parente, couleur, surface, coins... Mais je n'ai pas besoin de rayon ici...
Lorsque j'ai demandé pourquoi, la classe parentale a un groupe de méthodes qui est commun à tous ou commun à un groupe de formes, par exemple la méthode couleur, style.
Je ne comprends pas : cette question - une question ou une réponse souscrite ? En général, ils le font - dans la classe de base, c'est commun, puis dans les descendants, ils ajoutent des particularités. Pourquoi le faire dans l'autre sens ? Quel est le but ?
Mais même si vous n'allez pas plus loin, j'ai déjà suggéré une option - insérer un descendant intermédiaire dans lequel toutes les propriétés et méthodes inutiles sont déplacées vers la partie privée.
Il y a 200 méthodes dans la classe parent, je veux voir seulement 10 méthodes héritées plus celles créées dans la classe enfant, je n'ai pas besoin de 190 méthodes supplémentaires qui ne sont pas liées à la classe actuelle.
Pour ce faire, vous devez déclarer l'héritage comme protégé ou privé, puis surcharger les méthodes dont vous avez besoin.
Pour ce faire, vous devez déclarer l'héritage comme protégé ou privé, puis surcharger les méthodes que vous voulez.
Je ne comprends pas : cette question est-elle une question ou une réponse incomplète ? En général, ils procèdent de la manière suivante : dans une classe de base, on trouve le général, puis dans les descendants, on ajoute les particuliers. Pourquoi faire le contraire ? Quel est le but ?
Mais même si vous n'allez pas trop loin, j'ai déjà suggéré une option - insérer un descendant intermédiaire dans lequel toutes les propriétés et méthodes inutiles sont déplacées vers la partie privée.
Merci.
Alexey, ton exemple ne fonctionne pas, dans tous les cas, l'enfant reçoit les méthodes du parent, qui ne devraient pas être vidées.
Que se passe-t-il si vous modifiez le nom court lors de sa création ?
Et changer à chaque fois ?
Si l'indicateur contient des tampons indicateurs, l'auto-identification est facile, mais sans tampons, je ne vois pas encore de solution.
Comment connaître monINDICATOR_SHORTNAME ? Les fonctions IndicatorGet* n'existent pas !
Print(MQLInfoString(MQL_PROGRAM_NAME)) ; renvoie le nom court de l'indicateur. Si aucun nom court n'est spécifié, le nom complet sera renvoyé.