Erro do compilador C3797
'override': a declaração de evento não pode ter especificador de substituição (deve ser colocada em métodos de adição/remoção/aumento de eventos)
Você não pode substituir um evento trivial (um evento sem mecanismos de acesso explicitamente definidos) por outro evento trivial. O evento de substituição deve definir seu comportamento com funções de acessador.
Para obter mais informações, confira eventos.
Exemplo
O seguinte exemplo gera o erro C3797.
// C3797.cpp
// compile with: /clr /c
delegate void MyDel();
ref class Class1 {
public:
virtual event MyDel ^ E;
};
ref class Class2 : public Class1 {
public:
virtual event MyDel ^ E override; // C3797
};
// OK
ref class Class3 : public Class1 {
public:
virtual event MyDel ^ E {
void add(MyDel ^ d) override {}
void remove(MyDel ^ d) override {}
}
};