Erro do compilador C3650
'interface_method' : não pode ser usado como uma substituição explícita, deve ser uma função de membro virtual de uma classe base
Foi feita uma tentativa de executar uma substituição explícita em um membro que não era virtual.
Para obter mais informações, confira Substituições explícitas.
A amostra a seguir gera o erro 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
};