Avviso del compilatore C4484
'override_function': corrisponde al metodo della classe di riferimento di base 'base_class_function', ma non è contrassegnato come 'virtual', 'new' o 'override'; Si presuppone 'new' (e non 'virtual')
Quando si esegue la compilazione con /clr, il compilatore non eseguirà l'override implicito di una funzione della classe di base, il che significa che la funzione otterrà un nuovo slot nella tabella virtuale. Per risolvere il problema, specificare in modo esplicito se una funzione è un override.
Per altre informazioni, vedi:
C4484 viene sempre generato come errore. Usare il pragma di avviso per eliminare C4484.
Esempio
L'esempio seguente genera l'errore C4484.
// C4484.cpp
// compile with: /clr
ref struct A {
virtual void Test() {}
};
ref struct B : A {
void Test() {} // C4484
};
// OK
ref struct C {
virtual void Test() {}
virtual void Test2() {}
};
ref struct D : C {
virtual void Test() new {}
virtual void Test2() override {}
};