Partager via


Erreur du compilateur C2387

'type' : classe de base ambiguë

Le compilateur n’a pas pu résoudre sans ambiguïté un appel de fonction, car la fonction existe dans plusieurs classes de base.

Pour résoudre cette erreur, supprimez l’une des classes de base de l’héritage ou qualifiez explicitement l’appel de fonction.

L’exemple suivant génère l’erreur 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();
}