Compiler Error C3650
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Compiler Error C3650.
interface_method' : cannot be used as an explicit override, must be a virtual member function of a base class
An attempt was made to perform an explicit override on a member that was not virtual.
For more information, see Explicit Overrides.
The following sample generates 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
};
Show: