Avertissement du compilateur C4484
'override_function' : correspond à la méthode de classe ref de base 'base_class_function', mais n’est pas marquée 'virtual', 'new' ou 'override' ; 'new' (et non 'virtual') est supposé
Lors de la compilation avec /clr, le compilateur ne remplace pas implicitement une fonction de classe de base, ce qui signifie que la fonction obtient un nouvel emplacement dans la table virtuelle. Pour résoudre ce problème, spécifiez explicitement si une fonction est un remplacement.
Pour en savoir plus, consultez :
C4484 est toujours émis en tant qu’erreur. Utilisez le pragma d’avertissement pour supprimer C4484.
Exemple
L’exemple suivant génère l’erreur 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 {}
};