next up previous contents
Next: Initialisation et constructeurs Up: Classes Previous: Classes emboîtées

Pointeurs sur membres

On peut définir des pointeurs sur des membres d'une classe :

class A{
public:
   void f(int);
   char a;
};
//...
int A::* pdm = &A::a;
void (X::* pfm)(int) = &A::f
A x;
//...
x.*pdm = 'a';
x.*pfm(4);

pdm est un pointeur sur un membre de type char de la classe A, et pfm un pointeur sur une fonction membre de type void(int) de la classe A. Par leurs intermédiaires, on pourra accéder aux membres des objets.

Ce sont deux opérateurs nouveaux : .* et ->* qui sont dans la même classe de précédence, de priorité juste au-dessus des opérateurs multiplicatifs.




Mon Oct 20 14:02:48 MET 1997