Questions sur la POO dans MQL5 - page 56

 
Aleksey Mavrin:

Tu m'as déjà dit tellement de fois que je suis un imbécile et que je ne comprends rien, que je suis fier de mon sang-froid, que je ne t'ai pas envoyé une baise bien méritée).

Fondamentalement, une classe imbriquée rend facultatives les méthodes publiques pour les champs privés, c'est la violation de l'encapsulation dont vous parlez. D'autres arguments ?

Vous démontrez votre stupidité de façon si constante que je préfère vous y envoyer de façon méritée.

Une classe imbriquée ne fait pas ce que vous écrivez à son sujet. Et la tâche du modèle Guardian peut être résolue sans classe imbriquée et méthodes publiques inutiles.

Je vous rappelle que nous avons ici un exemple avec une classe imbriquée et des méthodes publiques.

 
Dmitry Fedoseev:

Vous démontrez votre stupidité de façon si constante que je préfère vous y envoyer de façon méritée.

Une classe imbriquée ne fait pas ce que vous écrivez à son sujet. Et le problème du modèle Guardian peut être résolu sans classe imbriquée et sans méthodes publiques inutiles.

On verra bien qui ira à la fin))

Que ne fait pas une classe imbriquée ?

Vous avez écrit que "l'encapsulation est rompue parce que des méthodes publiques sont créées pour des champs privés".

Une classe imbriquée a accès à des champs privés sans qu'il soit nécessaire de créer des méthodes publiques.

s.s. Vous êtes un habitué ici à en juger par le classement. Mais vous devez apprendre à communiquer et à dialoguer. Mais tu n'as pas besoin de ça dans ta vie.

 
Aleksey Mavrin:

On verra bien qui part à la fin).

Que ne fait pas la classe imbriquée ?

Vous avez écrit que "l'encapsulation est rompue parce que des méthodes publiques sont créées pour des champs privés".

Une classe imbriquée a accès à des champs privés sans qu'il soit nécessaire de créer des méthodes publiques.

s.s. Vous êtes un habitué ici à en juger par le classement. Mais vous devez apprendre à communiquer et à dialoguer. Mais vous n'en avez pas besoin dans la vie.

Je vous rappelle qu'il s'agit d'un exemple avec une classe imbriquée et des méthodes publiques (c'est-à-dire que la classe imbriquée n'a pas du tout aidé à se débarrasser de la nécessité de créer des méthodes publiques).

La classe imbriquée est juste une question de visibilité de la classe, pas de l'objet. La classe imbriquée, simplement, ne permet pas de créer un objet de cette classe, en dehors de la classe dans laquelle il est décrit. Par conséquent, vous devrez partir.

 
Aleksey Mavrin:

Exactement - la bonne structure. À cette fin, il convient de considérer toutes les variantes possibles de cette même structure, d'analyser leurs avantages et inconvénients dans une tâche donnée (en tenant compte des exigences d'extensibilité et de maintenance, etc.) et de choisir la meilleure.

Et les motifs notoires eux-mêmes (quelle que soit leur signification exacte) ne sont même pas une variante de la structure ici, mais simplement un point de référence pour le cerveau. C'est comme "Si le problème correspond à la description du problème du modèle X, cela signifie qu'il peut être résolu en appliquant le modèle X", mais vous pouvez aussi le résoudre d'un tas d'autres façons.

Et en général, ces 27 modèles de base sont nés comme une sorte d'indication pour les programmeurs sur les problèmes typiques comment les résoudre en suivant les principes de la POO. S'il n'y a pas de tâche à accomplir pour suivre les principes, comme c'est le cas pour Dmitry avec les structures, aucun modèle n'est nécessaire.

Merci, bon poste

Vous êtes différent du reste du panel ;)

 
Dmitry Fedoseev:

Je vous rappelle qu'il s'agit d'un exemple avec une classe imbriquée et des méthodes publiques (c'est-à-dire que la classe imbriquée n'a pas du tout permis de se débarrasser de la nécessité de créer des méthodes publiques).

Une classe imbriquée est juste une question de visibilité de la classe, pas de l'objet. La classe imbriquée, simplement , ne permet pas de créer un objet de cette classe, en dehors de la classe dans laquelle il est décrit. Donc tu dois partir.

Non !) stupidité !) Une classe imbriquée a accès à TOUS les champs PRIVÉS de la classe dans laquelle elle est imbriquée. (Vous ne le savez pas ? Eh bien, il n'y a rien à dire.

Et c'est sans compter l'absurdité que vous avez écrit que l'objet entier doit être copié pour le Shot...)) Il s'avère que... ne vous en voudrez pas si vous ne revenez pas bientôt))

 
Igor Makanu:

Merci, bon article.

Vous êtes différent du reste de la discussion ;)

Igor, merci aussi, et sur un mot gentil) et que vous créez des sujets intéressants pour une discussion mutuelle constructive ;)

 
Aleksey Mavrin:

Non !) c'est une absurdité !) Une classe imbriquée a accès à TOUS les champs PRIVÉS de la classe dans laquelle elle est imbriquée. (Vous ne le savez pas ? Alors il n'y a rien à dire.

Et c'est sans compter l'absurdité que vous avez écrit que l'objet entier doit être copié pour le Shot...)) Il s'avère que... ne vous en voudrez pas si vous ne revenez pas bientôt))

Et comment appelle-t-on une classe imbriquée ?

Je n'ai rien écrit du tout sur Snapshot ici.

 
class C1{
   protected:
      int x;
      class C2{
         protected:
         public:
         C2(){
            x=1;
         }
      };      
   public:
};

Où se trouve l'accès à x à partir de C2 ?

Encore une fois, une classe imbriquée n'est qu'une question de visibilité de la classe pour créer un objet. Un objet de la classe C2 ne peut être créé qu'à l'intérieur de la classe C1. C'est tout. C'est la seule différence avec l'écriture d'un type :

class C1{
   protected:
      int x;
   public:
};

class C2{
   protected:
   public:
   C2(){
      x=1;
   }
}; 


Mais vous appelez sûrement quelque chose d'autre une classe imbriquée ? Dites-nous quoi.

 
ahah )
 
TheXpert:
ahah )

Vous ne le saviez pas non plus ?