View Single Post
Old 01-07-2009, 02:38   #1
Alex_87_xelA
Senior Member
 
Iscritto dal: Nov 2008
Messaggi: 530
[C++] Derivazione Multipla di classi annidate

Ciao a tutti ... volevo fare una domanda abbastanza semplice

io ho questa situazione :

Codice:
class A
{
public:
	int x;
};

class B : public A
{
public:
	int x;
};

class C : public A
{
public:
	int x;
};

class D : public B, public C
{
public:
	int x;
};

void main()
{
	D n;
	n.?????? = 0;
}
Ora dove stanno i punti interrogativi vorrei chiamare la x della classe A

avevo pensato di fare

Codice:
n.A::x = 0;
ma il compilatore giustamente mi trova un'ambiguita .... non sa se A della classe B oppure A della classe C

quindi ho modificato in questo modo

Codice:
n.B::A::x = 0;

oppure

n.D::B::A::x = 0;
ma ancora giustamente il compilatore mi dice che A non è un membro di B e che B non è membro di D OVVIAMENTE.

quindi mi chiedo come accedere a tale membro (?) dal main ?
Sarà una cretinata ... ma ora non riesco a pensarci.

----- AGGIUNTA SUCCESSIVA
questo andrebbe bene ? e se si ... è l'unica soluzione ?
Codice:
        B *pb = &n;
	pb->A::x = 0;

Ultima modifica di Alex_87_xelA : 01-07-2009 alle 04:01.
Alex_87_xelA è offline   Rispondi citando il messaggio o parte di esso