Stavo provando a mettere in pratica l'esempio che fa Stroustrup circa le classi base duplicate. Secondo quello che scrive, avendo delle classi
si dovrebbe poter scriverecodice:structA { A *next; }; class B : public A { }; class C : public A { }; class D : public B, public C { };
per riferirsi ai due campi next che eredita D tramite B e C. Tuttavia, compilando quanto scritto con G++ ottengo un bell'errore 'A' is an ambiguous base of 'D' su entrambe le righe, mentre se scrivo d->B::next e d->C::next non ci sono problemi. Non riesco proprio a spiegarmelo, come mai le chiamate risultano ambigue quando non dovrebbero?codice:D *d = new D; d->B::A::next=0; d->C::A::next=0;
Grazie, ciao![]()

Rispondi quotando
