Czy można bezpiecznie usunąć wskaźnik NULL?
I czy to dobry styl kodowania?
make_shared
(c ++ 11) i make_unique
(C ++ 14) Twój program powinien zawierać zera z new
idelete
new
lub delete
. Klasy zaprojektowane do zarządzania zasobami, w których komponenty standardowe nie mogą wykonać zadania, mogą oczywiście robić to, co muszą, ale chodzi o to, że robią brzydkie rzeczy z zarządzaną pamięcią, a nie kodem użytkownika końcowego. Stwórz więc własną bibliotekę / klasę pomocniczą do zrobienia new
/ delete
i używaj tej klasy zamiast nich.
delete
. Zamiast tego użyj RAII . Oznacza to, że używajstd::vector<T> v(100);
zamiastT* p = new T[100];
, używaj inteligentnych wskaźników takich jakunique_ptr<T>
i,shared_ptr<T>
które zajmują się usuwaniem zamiast surowych wskaźników itp.