Apakah aman untuk menghapus pointer NULL?
Dan apakah itu gaya pengkodean yang baik?
make_shared
(c ++ 11) dan make_unique
(c ++ 14) Program Anda harus berisi nol dari new
dandelete
new
atau delete
. Kelas yang dirancang untuk mengelola sumber daya, di mana komponen Standar tidak dapat melakukan pekerjaan, tentu saja dapat melakukan apa yang harus mereka lakukan, tetapi intinya adalah mereka melakukan hal-hal buruk dengan memori yang mereka kelola, bukan kode pengguna akhir. Jadi, buat perpustakaan / kelas pembantu Anda sendiri untuk melakukan new
/ delete
, dan gunakan kelas itu sebagai ganti mereka.
delete
. Gunakan RAII sebagai gantinya. Yaitu, gunakanstd::vector<T> v(100);
alih-alihT* p = new T[100];
, gunakan pointer pintar sepertiunique_ptr<T>
danshared_ptr<T>
yang mengurus penghapusan bukan pointer mentah dll.