Condividi tramite


Errore del compilatore C2387

'type': classe base ambigua

Osservazioni:

Il compilatore non è riuscito a risolvere in modo ambiguo una chiamata di funzione perché la funzione esiste in più classi di base.

Per risolvere questo errore, rimuovere una delle classi di base dall'ereditarietà o qualificare in modo esplicito la chiamata di funzione.

Example

L'esempio seguente genera l'errore 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();
}