Pour votre référence, si vos deux exemples sont clairement traduits en C++, alors le C++ donnera une erreur dans les deux cas. MQL ne donne pas d'erreur dans le 1er cas uniquement parce que le processus de compilation (et non le langage lui-même) est différent.
A100: Pour votre référence, si vos deux exemples sont clairement traduits en C++, alors le C++ donnera une erreur dans les deux cas. MQL ne donne pas d'erreur dans le 1er cas uniquement parce que le processus de compilation (et non le langage lui-même) est différent.
J'ai vérifié, la variante de Stanislav compile avec succès dans VS 2010. En outre, l'accès au champ privé fonctionne également, et pas seulement à la méthode. Alors, peut-être que A100 était un peu trop dans ses conclusions cette fois-ci).
J'ai vérifié, la variante de Stanislav compile avec succès dans VS 2010. En outre, l'accès au champ privé fonctionne également, et pas seulement à la méthode. Donc, peut-être que A100 s'est trompé dans ses conclusions cette fois-ci).
Ci-dessus sont mes variantes. poster le code ici - puisqu'il ne peut pas le faire lui-même
Quel compilateur avez-vous utilisé pour le compiler ? Mon VS 2010 ne compile pas votre code pour une toute autre raison : la classe B n'est pas définie à l'endroit où la méthode de cette classe est appelée. Vous devez mettre la définition de g() en dehors de la classe pour cela. Et c'est exactement ce que Stanislav a fait. C'est-à-dire que votre code devrait être comme ceci :
class B;
class A {
void f() {}
void g();
B *b;
};
class B : public A {};
void A::g(void)
{
b->f();
}
En demandant la compilation en C++ ?
Avec ces deux passages :
Avez-vous essayé de compiler cet exemple en C++ - ou s'agit-il d'un raisonnement théorique général ?
en réponse à l'exemple de travail en C++ que j'ai donné, ainsi que
Si vous ne l'avez pas essayé, écrivez-le de cette façon.
En réponse à mon exemple, je viens de l'essayer.
Avec ces deux passages :
en réponse à l'exemple de travail que j'ai donné en C++, et aussi
en réponse à ce que je viens d'essayer.
Pour votre référence, si vos deux exemples sont clairement traduits en C++, alors le C++ donnera une erreur dans les deux cas. MQL ne donne pas d'erreur dans le 1er cas uniquement parce que le processus de compilation (et non le langage lui-même) est différent.
Merci.
Merci.
Pour ne pas être sans fondement, je donne l'analogue du dernier (en le modifiant un peu à ma façon) :
et au message original
J'ai vérifié, la variante de Stanislav compile avec succès dans VS 2010. En outre, l'accès au champ privé fonctionne également, et pas seulement à la méthode. Alors, peut-être que A100 était un peu trop dans ses conclusions cette fois-ci).
J'ai vérifié, la variante de Stanislav compile avec succès dans VS 2010. En outre, l'accès au champ privé fonctionne également, et pas seulement à la méthode. Donc, peut-être que A100 s'est trompé dans ses conclusions cette fois-ci).
Est-ce exactement la même chose que https://www.mql5.com/ru/forum/1111/page1999#comment_5677254?
Voici mes options... poster le code ici - s'il ne peut pas le faire lui-même
Correspond-il exactement à https://www.mql5.com/ru/forum/1111/page1999#comment_5677254?
Ci-dessus sont mes variantes. poster le code ici - puisqu'il ne peut pas le faire lui-même
Quel compilateur avez-vous utilisé pour le compiler ? Mon VS 2010 ne compile pas votre code pour une toute autre raison : la classe B n'est pas définie à l'endroit où la méthode de cette classe est appelée. Vous devez mettre la définition de g() en dehors de la classe pour cela. Et c'est exactement ce que Stanislav a fait. C'est-à-dire que votre code devrait être comme ceci :
et il compile.
Quel compilateur avez-vous utilisé pour le faire ?
En fait, cela ne change rien - erreur de compilation (j'ai une tablette - compilateur Borland)
Cela ne change pas grand chose - erreur de compilation (j'ai une tablette - compilateur Borland)