Est-il sûr de supprimer un pointeur NULL?
Et est-ce un bon style de codage?
make_shared
(c ++ 11) et make_unique
(c ++ 14) votre programme devrait contenir zéro de new
etdelete
new
ou delete
. Les classes conçues pour gérer les ressources, où les composants standard ne peuvent pas faire le travail, peuvent bien sûr faire ce dont elles ont besoin, mais le fait est qu'elles font le truc laid avec la mémoire qu'elles gèrent, pas le code de l'utilisateur final. Donc, créez votre propre bibliothèque / classe d'assistance pour faire new
/ delete
, et utilisez cette classe à la place d'eux.
delete
. Utilisez plutôt RAII . Autrement dit, utilisezstd::vector<T> v(100);
au lieu deT* p = new T[100];
, utilisez des pointeurs intelligents commeunique_ptr<T>
etshared_ptr<T>
qui s'occupent de la suppression au lieu des pointeurs bruts, etc.