Pelaksanaan Penunjuk Pintar C yang Tersedia dan Perbandingannya
C 03
-
std::auto_ptr: Ditamatkan pada masa hadapan C piawaian. Kutipan sampah terhad, komplikasi pemilikan dan ketidakupayaan untuk digunakan dalam bekas STL.
-
std::auto_ptr_ref: Bukan penunjuk pintar yang sebenar; digunakan bersama std::auto_ptr untuk membenarkan penyalinan dan tugasan.
C 11
-
std::unique_ptr: Menggantikan std::auto_ptr. Membetulkan kelemahan std::auto_ptr, membenarkan kerja dengan tatasusunan, perlindungan nilai dan penggunaan dalam bekas STL.
-
std::shared_ptr: Penunjuk pintar dikira rujukan. Menyokong pengalian dan aritmetik penunjuk.
-
std::weak_ptr: Rujukan bukan milik kepada objek yang dimiliki oleh std::shared_ptr. Menghalang kiraan rujukan kitaran tidak tentu.
Tingkatkan
-
rangsangan::shared_ptr: Penunjuk pintar dikira rujukan dikongsi popular. Prestasi tinggi dan serba boleh.
-
boost::weak_ptr: Rujukan bukan milik kepada boost::shared_ptr.
-
boost::scoped_ptr: Alternatif penunjuk pintar mudah untuk meningkatkan::shared_ptr dengan kurang overhed.
-
boost::intrusive_ptr: Penunjuk pintar tersuai untuk mencipta kelas serasi penunjuk pintar anda sendiri.
-
boost::shared_array: Shared penunjuk pintar untuk tatasusunan.
-
boost::scoped_array: Penunjuk pintar tidak boleh disalin untuk tatasusunan.
Qt
-
QPointer: Penunjuk pintar yang lemah untuk QObject dan terbitan kelas. Dihentikan.
-
QSharedDataPointer: Penunjuk pintar yang kuat setanding dengan boost::intrusive_ptr, dengan keselamatan benang.
-
QExplicitlySharedDataPointer:Versi 2.0 InterDataPointer yang dipertingkatkan kawalan ke atas detasmen.
-
QSharedPointer: Pengiraan rujukan atom, selamat benang, penunjuk pintar boleh kongsi.
-
QWeakPointer: Rujukan bukan milik kepada QSharedPointer.
-
QScopedPointer: Petunjuk pintar pemilik tunggal berdasarkan rangsangan::scoped_ptr, sesuai untuk kod dan keserasian selamat pengecualian.
Atas ialah kandungan terperinci Penuding Pintar C Mana Yang Harus Saya Pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn