Udostępnij za pośrednictwem


Błąd kompilatora C3650

"interface_method": nie można użyć jako jawnego zastąpienia, musi być wirtualną funkcją składową klasy bazowej

Podjęto próbę wykonania jawnego zastąpienia elementu członkowskiego, który nie był wirtualny.

Aby uzyskać więcej informacji, zobacz Jawne przesłonięcia.

Poniższy przykład generuje C3650:

// C3650.cpp
// compile with: /clr
public interface struct I {
   void a();
};

public ref class S {
public:
   static int f() { return 0; }
   static int g() { return 0; }
};

public ref struct T1 : public S, I {
   virtual int f() new sealed = S::f;   // C3650
   virtual int g() { return 0; }   // OK does not override S::g
   virtual void a() new sealed = I::a {}   // OK
};