next up previous contents
Next: Ambiguïtés Up: Héritage multiple Previous: Héritage sans partage

Héritage partagé

Dans cette forme d'héritage, il n'y a plus d'ambiguïté pour l'accès aux membres issus d'une même classe de base partagée

class base { /*...*/};
class d1: virtual public base{/*...*/};
class d2: virtual public base{/*...*/};
class d: public d1, public d2 {/*...*/};

C'est la classe elle-même qui précise si certaines de ses classes de bases seront partagées ou non par les descendants.

Par ailleurs, on peut à la fois hériter de façon virtuelle et de façon non-virtuelle:

class base { /*...*/};
class d1: virtual public base{/*...*/};
class d2: virtual public base{/*...*/};
class d3: public base{/*...*/}
class d: public d1, public d2 , public d3
{/*...*/};




Mon Oct 20 14:02:48 MET 1997