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 {}
};
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour