Kadang-kadang saya ingin mendelegasikan konstruksi objek yang dimiliki kelas ke fungsi terpisah. Sesuatu seperti
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
di mana fungsi ini hanya dimaksudkan untuk digunakan dalam kelas yang memiliki Vertex
. Jelas fungsi ini dapat menyebabkan kebingungan kehabisan memori, jadi saya ingin membuatnya sejelas mungkin. Apakah ada konvensi penamaan untuk fungsi-fungsi seperti itu?
unique_ptr
dengan memanggil release()
fungsinya, dan menggunakan pointer mentah seperti cara lama.
// FIXME: Allocation of raw pointer
?
new_vertex
jadi saya tahu objek baru dicetak. Anda bisa menyebutnya Create_new_vertex
lebih jelas. Adapun gagasan bahwa Anda tidak harus mengelola memori tumpukan tanpa petunjuk pintar, tidak pernah melihat kebenaran dalam hal itu - bahkan jika Anda tidak dapat mengelola memori tumpukan tanpa mereka, Anda juga tidak punya bisnis mengelola memori tumpukan dengan mereka!
// TODO: Fix allocation of raw pointer.