Compartir a través de


Error del compilador C2387

'tipo': clase base ambigua

El compilador no ha podido resolver una llamada de función de forma inequívoca, porque la función existe en más de una clase base.

Para resolver este error, quite una de las clases base de la herencia o califique explícitamente la llamada de función.

El ejemplo siguiente genera el error C2387:

// C2387.cpp
namespace N1 {
   struct B {
      virtual void f() {
      }
   };
}

namespace N2 {
   struct B {
      virtual void f() {
      }
   };
}

struct D : N1::B, N2::B {
   virtual void f() {
      B::f();   // C2387
      // try the following line instead
      // N1::B::f();
   }
};

int main() {
   D aD;
   aD.f();
}