class A
D d;
{
public:
void a(){printf("hi\n");}
};
class B:public A{};
class C:public A{};
class D:public B, public C {};
d.a(); // ambiguous, error
d.B::a(); // OK
d.C::a(); // OK
To avoid ambiguities, use 'virtual'
class A
class B:public virtual A{};
{
public:
void a(){printf("hi\n");}
};
class C:public virtual A{};
class D:public B, C {};D d;
d.a();
No comments:
Post a Comment