Avertissement du compilateur (niveau 1) C4946
reinterpret_cast utilisé entre des classes connexes : 'classe1' et 'classe2'
N’utilisez pas reinterpret_cast pour effectuer un cast entre les types associés. Utilisez static_cast à la place, ou pour les types polymorphes, utilisez dynamic_cast.
Par défaut, cet avertissement est désactivé. Pour plus d'informations, consultez Compiler Warnings That Are Off by Default.
L’exemple de code suivant génère l’erreur C4946 :
// C4946.cpp
// compile with: /W1
#pragma warning (default : 4946)
class a {
public:
a() : m(0) {}
int m;
};
class b : public virtual a {
};
class b2 : public virtual a {
};
class c : public b, public b2 {
};
int main() {
c* pC = new c;
a* pA = reinterpret_cast<a*>(pC); // C4946
// try the following line instead
// a* pA = static_cast<a*>(pC);
}
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