Article ID: 104186
Article Last Modified on 7/5/2005
void D::f()
{
B::f();
C::f();
}
/* Compiler options needed: /c
*/
class A
{
public:
int a;
virtual void e();
virtual void f();
};
class B : public virtual A
{
public:
void f();
int a;
};
class C : public virtual A
{
public:
void f();
};
class D : public B, public C
{
public:
void d();
}; // VC++ 4.0 - 2 C2250 errors
// 'D' : ambiguous inheritance of 'B::f'
// 'D' : ambiguous inheritance of 'C::f'
void D::d()
{
a++; // OK: only one function 'a' in class 'D'
e(); // OK: only one function 'e' in class 'D'
f(); // error C2250 or error C2385 :
// two function 'f's in class 'D'
}
Additional query words: 8.00 8.00c 9.00 9.10
Keywords: kbprb kbcpponly kbcompiler KB104186