Bagaimana Menerapkan Copy Constructor Di C ++?



Memahami Konstruktor telah menjadi teka-teki bagi banyak orang. Artikel ini akan membantu Anda mengungkap konsep Copy Constructor In C ++

Pemahaman Konstruktor telah menjadi teka-teki bagi banyak orang. Artikel ini akan membantu Anda mengungkap konsep Copy Constructor In C ++. Petunjuk berikut akan dibahas dalam artikel ini,

Jadi mari kita mulaidengan artikel ini di Copy Constructor di C ++





Copy Constructor adalah Constructor yang menginisialisasi sebuah objek kelas menggunakan objek lain dari kelas yang sama.

Sintaksis:



Kami memiliki kata kunci const karena kami ingin membuat nilainya konstan dan memastikan bahwa itu tidak dimodifikasi di suatu tempat dalam kode. Seperti konstruktor default, konstruktor salinan juga disediakan oleh kompilator. Ini disebut Pembuat Salinan Default. Konstruktor salinan dapat dibuat pribadi. Kita tidak dapat menyalin objek kelas saat kita membuat salinan konstruktor pribadi.

Berikut adalah Contoh Kode :

perbedaan antara extends dan implement di java
#include using namespace std class test {private: int x public: test (int x1) {x = x1} test (const test & t2) {x = t2.x} int getX () {return x}} int main () {test t1 (7) // Konstruktor normal dipanggil disini test t2 = t1 // Copy konstruktor dipanggil disini cout<< 't1.x = ' << t1.getX() cout << 'nt2.x = ' << t2.getX() return 0 } 

Keluaran:



Output-Copy Constructor di C ++ - Edureka

Penjelasan

Program di atas adalah demo dasar dari konstruktor salinan. Kami memiliki tes kelas, dengan anggota data pribadi tipe int yang disebut x. Kemudian kami memiliki konstruktor berparameter, yang memberikan 7 ke variabel x. Kami memiliki konstruktor salinan, yang memberi contoh nilai t2 dengan nilai t1. Alamat t2 dikirim yang menyimpan nilai t1 dan ditugaskan ke x. Ada fungsi get yang mengembalikan nilai x.

Fungsi utama memiliki objek uji kelas yang disebut t1. Ada nilai yang terkait dengan objek ini, ini adalah parameter. Fungsi utama memiliki objek uji kelas lain yang disebut t2. Ini diinisialisasi dengan menggunakan variabel t1 dan konstruktor salinan dipanggil di sini. Terakhir, fungsi get dipanggil sehubungan dengan t1 dan t2 untuk mendapatkan nilai x.

Jenis

Ada dua jenis konstruktor salinan.
⦁ Pembuat Salinan Dangkal
⦁ Pembuat Salinan Dalam

Pindah dengan artikel ini tentang Copy Constructor di C ++

Konstruktor salinan dangkal:

A Shallow Copy Constructor adalah Default Copy Constructor.

Contoh:

struktur data kamus di java

Dua orang mengakses database pada saat yang sama dan membuat perubahan pada nilai melalui dua sistem yang berbeda. Jika mereka membuat perubahan ke database, kedua perubahan ini akan ditampilkan di database. Kedua objek tersebut akan menunjuk ke lokasi memori yang sama. Ini adalah Pembuat Salinan Dangkal. Ini sebagian besar terjadi ketika kita bekerja dengan konstruktor salinan default. Berikut adalah Contoh Kode Untuk: Pembuat Salinan Dangkal:

#include using namespace std class test {public: int y, z test (int y1, int z1) {y = y1 z = z1}} int main () {test a (7,13) cout<<'the sum is: '<< a.y+a.z return 1 } 

Keluaran:

Penjelasan:

Dalam kode di atas, kami menggunakan konstruktor salinan default yang disediakan oleh kompiler. Oleh karena itu, ini adalah Pembuat Salinan Dangkal.

Pindah dengan artikel ini tentang Copy Constructor di C ++

Konstruktor salinan dalam

Deep Copy Constructor adalah konstruktor salinan yang ditentukan pengguna.
Sebagai contoh:
Ketika dua orang harus membuat presentasi dan mereka berdua menyalin dari sumber yang sama, salinannya terpisah. Jadi, saat Anda melakukan modifikasi, hanya salinan lainnya yang tidak terpengaruh. Ini adalah Pembuat Salinan Dalam. Kedua objek tersebut akan menunjuk ke lokasi memori yang berbeda dan perubahan di satu tempat tidak akan berpengaruh pada yang lain. Memori dialokasikan secara dinamis.

Berikut adalah Contoh Kode Untuk: Pembuat Salinan Dalam:

#include using namespace std class test {private: int x public: test (int x1) {x = x1} test (const test & t2) {x = t2.x} int getX () {return x}} int main () {test t1 (7) // Konstruktor normal dipanggil disini test t2 = t1 // Copy konstruktor dipanggil disini cout<< 't1.x = ' << t1.getX() cout << 'nt2.x = ' << t2.getX() return 0 } 

Keluaran:

apa itu tostring di java

Penjelasan

Ini adalah kode yang sama yang kami gunakan di atas, memberikan hasil yang serupa. Ini adalah Pembuat Salinan yang ditentukan pengguna dan karenanya merupakan Pembuat Salinan Dalam.

Jadi kami telah sampai pada akhir artikel ini tentang 'Salin Pembuat di C ++'. Jika Anda ingin mempelajari lebih lanjut, lihat oleh Edureka, perusahaan pembelajaran online terpercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.