Shared_ptr: Rujukan lwn. Nilai
Apabila berurusan dengan penunjuk kongsi dalam C , pilihan antara lulus melalui rujukan atau nilai boleh timbul. Keputusan ini melibatkan pertimbangan kepantasan, pemilikan dan isu yang berpotensi.
Prestasi
Pada mulanya, nampaknya lulus melalui rujukan (melalui rujukan const) akan menjadi lebih pantas daripada melepasi nilai. Walau bagaimanapun, andaian ini tidak sepenuhnya tepat. Penyusun moden mengoptimumkan kedua-dua senario dengan berkesan, menjadikan perbezaan itu boleh diabaikan dalam kebanyakan kes.
Pemilikan
Melalui nilai membayangkan pemindahan pemilikan, sementara melalui rujukan mengekalkan pemilikan dalam fungsi panggilan. Melainkan niatnya adalah untuk memindahkan pemilikan (contohnya, antara struktur data atau urutan), adalah lebih baik untuk lulus melalui rujukan.
Pertimbangan Tambahan
Kesimpulan
Berdasarkan faktor-faktor ini, amalan yang disyorkan adalah lulus shared_ptrs melalui rujukan (khususnya, dengan rujukan const untuk mengelakkan pengubahsuaian tidak sengaja). Ini memastikan pemilikan kekal bersama pemanggil, mengekalkan prestasi dan memudahkan pengendalian kod.
Atas ialah kandungan terperinci Patutkah saya Lulus `shared_ptr` melalui Rujukan atau Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!