Bonjour a tous,

encore et tjs sur le BS 3eme edition ou j avance petit a petit.
Je bloque de temps a autre sur certains points comme par exemple:
p439, §15.2.3 Les classes de base dupliquees

Soit une classe B et C derivant chacune de A. D dérive de B et C.
A<---- B <---- D
A<---- C <----D

A est implémentée comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
struct Link { Link* next;}
La phrase exacte du bouquin est : "Deux objets Link (ie de classe A)
distincts sont utilises pour représenter les liaisons, et les deux listes n
interferent aucunement entre elles".

Voici mes soucis/remarques:

1)Deja je ne comprend pas pourquoi on parle d'objet Link etant donne qu'en
declarant un objet D, je n'ai pas l impression de declarer deux objets A...

De plus, Bjarne insiste en parlant des fonctions virtuelles sur la meme
page:
"Lorsqu'une classe de base commune ne doit pas être représentée par deux objets
distincts, il est possible d'utiliser une classe de base virtuelle".
Il parle bien d'objets pour representer une classe... argh mes neurones s entrechoquent...


2)En fait si je comprend bien avec une conception de la sorte, on cree 2
branches de derivation de Link et pour definir les fonctions membres on va etre obligé
de passer par les sous-classes:
B::A::next ou C::A::next


Qu'en pensez vous?