Bir kopya kurucu, C ++ 'da ve kodlama nesnesini kopyalayan C ++' dan etkilenen diğer dillerde özel bir işlevdir. Programcı bunu kopya kurucu bildirimini ekleyerek ve bir nesneyi referans alarak yapar. Öncelikle, bu programlayıcıya zaman kazandırarak fayda sağlar, ancak programcının nesnenin kodlamasını yanlış girmemesini sağlar. Kopyalama yapıldığında, farklı bir hafıza işaretçisine sahip olması gerekir, aksi takdirde orijinal nesnenin işaret ettiği kısmı gösterecektir. Kopya kurucuları kullanmanın en büyük dezavantajlarından biri, bağımsız olarak çalışmamalarıdır; Orijinal nesne silinirse, o zaman da kopya olacaktır.
Bir programcı bir kopya kurucu kullandığında, kodda, kodda listelenen bir nesneyi kopyalamasını söylüyor. Bunu yapmak için, programcı önce kodlamayı, kopyalama işlevini gerçekleştirmesini bildirmek için bir bildirim kullanmalıdır. Programcının ayrıca başka bir nesneye de başvuruda bulunması gerekir, bu nedenle nesne zaten oluşturulmuş olmalıdır, aksi takdirde kopyayı gerçekleştirmenin yolu yoktur.
Bir kopya kurucu kullanmanın en büyük yararı zaman kazandırmasıdır. Programcı aynı fonksiyonları tekrar yazmak ve tekrar kodlamak yerine, sadece bir referans ekleyebilir ve nesne hazır olacaktır. Bunun tutarlı ve doğru kodlamada başka bir gizli yararı vardır. Orijinal nesne doğru kodlandığı sürece, kopyalanan nesne de doğru kodlamaya sahip olacaktır. Bu faydaların her ikisi de karmaşık nesnelerde en belirgin olanıdır, ancak programcılar basit nesnelerin kopyalanmasından da faydalanabilirler.
C ++ dillerinde, birçok işlev bir bellek işaretçisi gerektirir. Bu, fonksiyona tam olarak belirli bilgiler için hafızada nereye bakılacağını veya verileri nerede depolayabileceğini söyler. Bir kopya kurucu kullanıldığında, programcı yeni bir hafıza işaretçisi belirtmelidir; aksi takdirde, iki nesne aynı bellek alanını kullanır. Yüzeyde, bu kötü görünmeyebilir, ancak tutarsızlıklara yol açabilir. Örneğin, her iki nesne de aynı işaretçiyi paylaşıyorsa ve kopyalanan nesne kredi kartı uygulamaları göndermek için yapılırken kredi başvurusu yapmak için bir nesne kullanılıyorsa, tüm kredi kartı uygulamaları kredi uygulamaları ile birlikte saklanır.
Programcıların bir nesneyi silmeye karşı dikkatli olmaları gerekir, çünkü copy yapıcı nesneleri bağımsız olarak çalışamaz. Programcı orijinal nesneyi silerse, kopyalanan nesnenin referans göstereceği bir şey olmaz. Referans verilecek hiçbir kod olmadan, kopyalanan nesne görevini yerine getiremez ve işe yaramaz hale gelir.


