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