Video: Coding Challenge #124: Flocking Simulation 2024
Pembina adalah fungsi khas yang C ++ bertindak secara automatik apabila objek dibuat untuk membolehkan objek itu untuk memulakannya. Terdapat dua variasi pembolehubah tertentu yang dikenali sebagai salinan salinan dan pembangun bergerak.
Pembuat salinan adalah pembina yang menggunakan C ++ untuk membuat salinan objek. Ia membawa nama X:: X (const X &), di mana X adalah nama kelas. Iaitu, ia adalah pembina kelas X, yang mengambil hujahnya sebagai rujukan kepada objek kelas X . Ini kedengarannya tidak berguna, tetapi hanya mengambil satu minit untuk meneroka mengapa keperluan C ++ seperti binatang itu.
Fikirkan sejenak tentang apa yang berlaku apabila anda memanggil fungsi seperti berikut:
void fn (Student fs) {// … senario yang sama; argumen yang berbeza …} int main (int argcs, char * pArgs []) {Student ms; fn (ms); kembali 0;}
Dalam panggilan ke fn (), C ++ akan menyalin salinan objek ms dan bukannya objek itu sendiri.
Sekarang pertimbangkan apa artinya membuat salinan objek. Pertama, ia memerlukan pembina untuk membuat objek, walaupun salinan objek sedia ada. C ++ boleh membuat pembina salinan lalai yang menyalin objek sedia ada ke objek baru satu byte pada satu masa.
Itulah bahasa yang lebih tua seperti C lakukan. Tetapi bagaimana jika kelas tidak mahu salinan ringkas objek itu? Bagaimana jika ada sesuatu yang diperlukan? (Abaikan "kenapa?" Untuk seketika.) Kelas perlu dapat menentukan dengan tepat bagaimana salinan harus dibuat.
Oleh itu, C ++ menggunakan penyusun salinan dalam contoh terdahulu untuk membuat salinan objek ms pada timbunan semasa panggilan fungsi fn (). Pembina salinan tertentu ini akan menjadi Pelajar:: Pelajar (Pelajar &) - katakan tiga kali dengan cepat.