Download this source file
// Ambiguous multiple inheritance demo.
// Wayne Pollock, Tampa FL, 1998
#include
using namespace std;
class Base1 { public: void f() {cout << "Base1::f()\n";} };
class Base2 { public: void f() {cout << "Base2::f()\n";} };
class D : public B1, public B2
{
public:
void g () { f(); } // No error reported here, since this is
// not a problem if g() is never called!
// To fix, use Base1::f() or Base2::f().
};
int main ()
{
D d;
d.g(); // Compiler detects error here.
return 0;
}