Skip to main content

Apa itu copy constructor?

Konstruktor copy adalah fungsi khusus dalam C ++, dan bahasa lain yang dipengaruhi oleh C ++, yang menyalin objek pengkodean.Programmer melakukan ini dengan menambahkan deklarasi copy constructor dan merujuk suatu objek.Terutama, ini bermanfaat bagi programmer dengan menghemat waktu, tetapi juga memastikan bahwa programmer tidak memasukkan pengkodean objek secara tidak benar.Ketika salinan dibuat, ia harus memiliki penunjuk memori yang berbeda atau akan menunjuk ke bagian yang sama dengan yang ditunjuk oleh objek asli.Salah satu kelemahan utama menggunakan copy constructor adalah bahwa mereka tidak dapat berfungsi secara mandiri;Jika objek asli dihapus, maka salinannya juga,

Ketika seorang programmer menggunakan konstruktor salinan, ia memberi tahu kode tersebut untuk menyalin objek yang sudah tercantum dalam kode.Untuk melakukan ini, programmer harus terlebih dahulu menggunakan deklarasi untuk memberi tahu pengkodean untuk melakukan fungsi salin.Programmer juga harus merujuk objek lain, sehingga objek harus sudah dibangun atau tidak akan ada cara untuk melakukan salinannya.

Manfaat utama menggunakan konstruktor salinan adalah menghemat waktu.Alih -alih harus mengetik ulang fungsi dan pengkodean yang sama lagi, programmer dapat menambahkan referensi dan objek akan siap.Ini memiliki manfaat tersembunyi lainnya dalam pengkodean yang konsisten dan akurat.Selama objek asli dikodekan dengan benar, objek yang disalin juga akan memiliki pengkodean yang benar.Kedua manfaat ini paling jelas dengan objek kompleks, tetapi pemrogram juga dapat memperoleh manfaat dari menyalin objek sederhana.

Dalam bahasa C ++, banyak fungsi memerlukan penunjuk memori.Ini memberi tahu fungsi di mana harus mencari di memori untuk informasi tertentu, atau di mana ia dapat menyimpan data.Programmer harus menentukan penunjuk memori baru saat konstruktor salinan digunakan;Jika tidak, kedua objek akan menggunakan ruang memori yang sama.Di permukaan, ini mungkin tidak tampak buruk, tetapi dapat menyebabkan ketidakkonsistenan.Misalnya, jika kedua objek berbagi pointer yang sama dan satu objek digunakan untuk mengirimkan aplikasi pinjaman saat objek yang disalin dibuat untuk mengirimkan aplikasi kartu kredit, maka semua aplikasi kartu kredit akan disimpan dengan aplikasi pinjaman.

Pemrogram harus melakukannyaBerhati -hatilah menghapus suatu objek, karena objek konstruktor copy tidak dapat berfungsi secara independen.Jika programmer menghapus objek asli, maka objek yang disalin tidak memiliki apa pun untuk dirujuk.Tanpa kode untuk referensi, objek yang disalin tidak akan dapat melakukan tugasnya dan akan menjadi tidak berguna.