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
Barbara Streisandasal
2024-11-30 10:46:12623semak imbas

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:
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