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
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;