Pointer sur membres

Sources d'information

Librairie(s) requise(s)

iostream

Comment ça marche

Tout ce passe dans main.cpp

Nouveaux opérateurs:

.* instance

.-> pointeur sur instance

Sample  instance;
// decl de pointeur instancep avec valeur address de l'instance
Sample  * instancep = &instance;
// pointer sur un attribut membre (foo) qui est initialise a null
int     Sample::*p = NULL;
// pointeur sur fonction membre
void    (Sample::*f)( void ) const;

// cette ligne est identique a Sample * instancep = &instance;
// ici on ne sait pas encore de quelle instance on parle
p = &Sample::foo;

std::cout << "Value of member foo:" << instance.foo << std::endl;

// nouvel operateur .* (instance concerné.*p)
instance.*p = 21;
std::cout << "Value of member foo:" << instance.foo << std::endl;

// nouvel operateur ->* 
instancep->*p = 42;
std::cout << "Value of member foo:" << instance.foo << std::endl;

// ici on ne sait pas encore de quelle instance on parle
f = &Sample::bar;

// pointeur sur fonction membre sur un instance specifique
(instance.*f)();
(instancep->*f)();

retour


© 2022, vroch
Revisé le : 29 oct 2022
URL : http://vroch.ch/vr_tech_036.html
Main : http://vroch.ch