Erreurs, bugs, questions - page 1696

 
Vladimir Pastushak:

Voici un exemple

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.

 
Vladimir Pastushak:

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.

 
Question à l'administration, quand sera-t-il possible de voir les nouvelles statistiques actualisées pour les services ?
 
Vladimir Pastushak:

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.

class naslednic_1 : protected roditel
  {
public:
   virtual int       two(void)   { return roditel::two(); }
   virtual int       three(void) { return roditel::three(); }
  };
 
Alexey Navoykov:

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.


 
Comment connaître monINDICATOR_SHORTNAME ? Les fonctions IndicatorGet* manquent !
 
Alexey Kozitsyn:
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.

 
fxsaber:
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 est renvoyé.
 
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é.
Merci.
Raison: