多重继承重名成员变量问题
各位大虾:
下面是我的程序,书上说可以这样写的,可是问题2处有个错误
#include "iostream.h"
class A {
public: int ID;
A(){ID=0;}
};
class B: public A {
public: int ID;
B(){ID=1;}
};
class C: public A {
public: int ID;
C(){ID=2;}
};
class D:public B,public C {
public: int ID;
D(){ID=3;}
/*public: //int ID;
D(){B::ID=3;}*/ //问题1
};
void main()
{
A a;
cout<<"A.ID="<<a.ID<<endl;
B b,*p;
cout<<"B.ID="<<b.ID<<endl;
C c;
cout<<"C.ID="<<c.ID<<endl;
cout<<"C.A.Id="<<c.A::ID<<endl;
D d;
// cout<<"D.C.Id="<<d.C::ID<<endl;
cout<<"D.C.A.Id="<<d.C.A::ID<<endl; //问题2
/* p=&d;
int k=p->A::ID;
cout<<"D.C.A.Id="<<k<<endl;*/ //问题3
}
类D中的ID有多个来源,但是书上说可以用d.C.A::ID来访问,可是我试了不行,是为什么?谢谢.