Je suis tombé sur cet extrait de code étrange qui compile très bien :
Pourquoi C++ ont ce pointeur vers un membre de données non statique d’une classe ? Quelle est l’utilisation du pointeur this étrange dans le code réel ?
Je suis tombé sur cet extrait de code étrange qui compile très bien :
Pourquoi C++ ont ce pointeur vers un membre de données non statique d’une classe ? Quelle est l’utilisation du pointeur this étrange dans le code réel ?
Vous pouvez accéder plus tard de ce membre, n’importe quelle instance :
Notez que vous avez besoin d’une instance de l’appeler, donc il ne fonctionne pas comme un délégué.
Elle est rarement utilisée, j’ai besoin il peut-être une ou deux fois dans toutes mes années.
Normalement à l’aide d’une interface (c'est-à-dire une classe pure de base en C++) est le meilleur choix de conception.
IBM a plus de documentation sur l'utilisation de ce. Brièvement, vous utilisez le pointeur d'un décalage dans la classe. Vous ne pouvez pas utiliser ces pointeurs en dehors de la classe, ils se réfèrent, donc:
int Car::*pSpeed = &Car::speed;
Car mycar;
mycar.*pSpeed = 65;
Il semble un peu obscur, mais une application possible est si vous essayez d'écrire du code pour la désérialisation de données génériques dans beaucoup de différents types d'objets, et de votre code doit gérer les types d'objets qu'il ne connaît absolument rien au sujet (par exemple, votre code est dans une bibliothèque, et les objets qui vous désérialisez été créé par un utilisateur de votre bibliothèque). Le membre pointeurs de vous donner un générique, semi-lisible façon de se référer aux données individuelles des membres des compensations, sans avoir à recourir à sans type void * tours de la même façon que vous pouvez pour C des structures.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.