Rumah >pembangunan bahagian belakang >C++ >Penuding Pintar C Mana Yang Perlu Saya Gunakan?
Memahami Penunjuk Pintar dalam C : Bila Menggunakan Jenis Yang Mana
Penunjuk Pintar ialah alat penting dalam pengaturcaraan C moden untuk mengurus pemilikan objek dan sumber seumur hidup. Kemunculan perpustakaan C 11 dan Boost telah memperkenalkan pelbagai jenis penunjuk pintar, menimbulkan persoalan yang mana satu untuk digunakan dalam senario yang berbeza.
Pemilikan Dikongsi
Untuk pemilikan sumber dikongsi, std::shared_ptr dan std::weak_ptr adalah disyorkan. Shared_ptr membenarkan berbilang pemilik berkongsi sumber, manakala weak_ptr menyediakan rujukan bukan pemilik untuk memerhati sumber tanpa menjejaskan hayatnya. Boost juga menawarkan shared_array sebagai alternatif kepada std::shared_ptr
Pemilikan Unik
std::unique_ptr ialah pilihan lalai untuk pemilikan unik, menawarkan beberapa kelebihan berbanding scoped_ptr Boost. Unique_ptr menyokong pemadam tersuai, boleh alih dan serasi dengan bekas STL. Boost menyediakan scoped_array sebagai versi tatasusunan scoped_ptr, yang telah diseragamkan dalam C 11.
Tiada Pemilikan
Petunjuk mentah atau rujukan harus digunakan untuk rujukan bukan pemilik kepada sumber yang hidup lebih lama daripada objek/skop rujukan. Penunjuk mentah membenarkan kebolehbatalan dan kebolehtetapan semula, manakala rujukan diutamakan untuk kebolehubah.
Tingkatkan Penunjuk Pintar
Boost menyediakan jenis penuding pintar tambahan, seperti intrusive_ptr, yang berguna untuk menerima pakai pengurusan yang dikira rujukan daripada sumber sedia ada. Walau bagaimanapun, jenis ini tidak diseragamkan dalam C 11.
Pemberhentian
std::auto_ptr kini ditamatkan dalam C 11 memihak kepada unique_ptr, yang menawarkan fungsi yang dipertingkatkan .
Atas ialah kandungan terperinci Penuding Pintar C Mana Yang Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!