Teilen über


Compilerfehler C2387

'type' : mehrdeutige Basisklasse

Bemerkungen

Der Compiler konnte einen Funktionsaufruf nicht eindeutig auflösen, da die Funktion in mehr als einer Basisklasse vorhanden ist.

Um diesen Fehler zu beheben, entfernen Sie entweder eine der Basisklassen aus der Vererbung, oder qualifizieren Sie den Funktionsaufruf explizit.

Example

Im folgenden Beispiel wird C2387 generiert:

// 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();
}