Download this source file


// Ambiguous multiple inheritance demo.
// Wayne Pollock, Tampa FL, 1998

#include <iostream>

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;
}