2010-07-11 12 views
-1

Nous savons que les membres privés ne sont pas hérités chaque fois que nous héritons d'une classe de base pour obtenir une classe dérivée, mais est-il possible pour les fonctions membres de la classe dérivée d'accéder les membres privés de la classe de base?modes de visibilité des classes

+0

Ce n'est pas possible. Publiez du code qui illustre ce qui se passe. –

+0

Qui a dit que les membres privés ne sont pas hérités? 'Comment est-il possible que les fonctions membres des classes dérivées accèdent aux membres privés de la classe de base? 'Publiez votre code. –

+1

ils ne sont pas les accédaient directement ils les accesseing en utilisant les fonctions de membres du public qui sont hérités par cette classe dérivée – anurag18294

Répondre

3

membres privés sont héritées, mais ils ne sont pas accessibles. Ils sont "privés" pour une raison. Cependant, si votre classe dérivée doit y accéder, elle doit être déclarée friend à la classe de base.

+0

puis-je connaître la raison pour laquelle ils ne sont pas accessibles – anurag18294

+1

Parce qu'ils étaient destinés à être utilisés par les membres de la classe de base seulement, décidée par son concepteur. Si le concepteur voulait que les classes dérivées puissent utiliser ou accéder à ces membres, il aurait pu les déclarer protégés. –

2

membres privés de la classe de base sont hérités par la classe dérivée, mais ne sont pas (directement) avoir accès. Ils peuvent toujours être accessibles par les membres protégés et publics de la classe de base. Comme Hosam Aly dit ci-dessus on pourrait accéder aux membres de la classe de base en faisant des fonctions de classe dérivées amis de la classe de base, ou en transformant les membres privés de la classe de base en membres protégés de la classe de base, selon ce qui est préférable.