/************************************************************************ *
The following example uses the :: (scope resolution) operator to resolve
an ambiguous reference.
* ************************************************************************/
// This example illustrates ambiguous base classes.
class B1
{
public:
int i;
int j;
int g( );
};
class B2
{
public:
int j;
int g( );
};
// ...
class D : public B1, public B2
{
public:
int i;
};
void main ()
{
D dobj;
D *dptr = &dobj;
dptr -> i = 5; // valid, D::i
dptr -> j = 10; // error, ambiguous reference to j
dptr->B1::j = 10; // valid, B1::j
dobj.g( ); // error, ambiguous reference to g( )
dobj.B2::g( ); // valid, B2::g( )
}