Rumah > pembangunan bahagian belakang > C++ > Apakah Pelaksanaan Penunjuk Pintar C Wujud dan Bagaimanakah Ia Berbeza?

Apakah Pelaksanaan Penunjuk Pintar C Wujud dan Bagaimanakah Ia Berbeza?

Barbara Streisand
Lepaskan: 2024-11-30 10:46:12
asal
691 orang telah melayarinya

What C   Smart Pointer Implementations Exist and How Do They Differ?

Apakah Pelaksanaan Penunjuk Pintar C yang tersedia?

C 03

  • std::auto_ptr: Kutipan sampah terhad, tidak boleh menyimpan tatasusunan yang diperuntukkan objects,不支持拷贝,已废弃。
  • std::auto_ptr_ref: Bukan penunjuk pintar, digunakan dengan std::auto_ptr untuk penyalinan dan tugasan.

C 11

  • std::unique_ptr: Menggantikan std::auto_ptr, prestasi yang dipertingkatkan, berfungsi dengan tatasusunan, boleh digunakan dalam bekas STL.
  • std::shared_ptr: Penunjuk pintar dikira rujukan, boleh dikongsi oleh berbilang pemilik, selamat untuk benang.
  • std::weak_ptr: Rujukan kepada objek yang dimiliki oleh std::shared_ptr, tidak menghalang pemadaman.

Boost

  • boost::shared_ptr: Shared-ptr patuh standard, mudah digunakan , overhed tinggi dalam sesetengahnya kes.
  • boost::weak_ptr: weak_ptr patuh standard, membenarkan rujukan bukan milik untuk boost::shared_ptr.
  • boost::scoped_ptr: Serupa dengan std::unique_ptr, kurang overhed daripada boost::shared_ptr, tidak boleh digunakan dalam bekas STL.
  • boost::intrusive_ptr: Penunjuk pintar boleh disesuaikan untuk mencipta kelas serasi penunjuk pintar anda sendiri.
  • boost::shared_array: Shared_ptr untuk tatasusunan, menyokong dinamik peruntukan tatasusunan dan pemadaman.
  • boost::scoped_array: Scoped_ptr untuk tatasusunan, tidak boleh disalin, tidak boleh digunakan dalam STL bekas.

Qt

  • QPointer: Penunjuk pintar yang lemah untuk QObject dan kelas terbitan, tidak menyediakan kuat penunjuk.
  • QSharedDataPointer: Penuding pintar yang kuat, memerlukan pengiraan rujukan manual, boleh mensubkelaskan QSharedData.
  • QExplicitlySharedDataPointer: Lebih banyak kawalan serupa dengan QPointer,SharedD habis menanggalkan.
  • QSharedPointer: Pengiraan rujukan atom, selamat benang, pemadaman boleh disesuaikan, overhed tinggi.
  • QWeakPointer: Penunjuk pintar yang lemah, digunakan dengan QSharedPointer untuk mengelakkan pekeliling rujukan.
  • QScopedPointer: Petunjuk pintar pemilik tunggal, kurang overhed daripada QSharedPointer.

Atas ialah kandungan terperinci Apakah Pelaksanaan Penunjuk Pintar C Wujud dan Bagaimanakah Ia Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan