PDA

View Full Version : [C++] Derivazione Multipla di classi annidate


Alex_87_xelA
01-07-2009, 02:38
Ciao a tutti ... volevo fare una domanda abbastanza semplice

io ho questa situazione :


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


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


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 ?

B *pb = &n;
pb->A::x = 0;