genjuro wrote:
> coba masuk ke sini:
> http://cplusplus.com/doc/tutorial/classes.html
> bisa dijelasin mengenai bagian yang terdapta penjelasan mengenai:
> 
> CExample::CExample (const CExample& rv) {
>   a=rv.a;  b=rv.b;  c=rv.c;
>   }
> 
> Therefore, the two following object declarations would be correct:
> 
> CExample ex (2,3);
> CExample ex2 (ex);   // copy constructor (data copied from ex)
> 
> 
> saya blm mengerti bagaimana proses argumen yang dimasukkan ke dalam
> fungsinya...
> 
> 
> 
> blog:
> http://chippzanuff.blogspot.com

Saya akan coba mencontohkan terlebih dahulu dengan tipe dasar pada
C/C++. Kita semua hampir dipastikan pernah membuat kode program seperti
berikut ini:
int a = 5;
int b = a;

Pada potongan kode program diatas, kita mendeklarasikan variabel bertipe
int lalu menginisialisasi nilainya dengan konstanta '5'. Selanjutnya
dilakukan deklarasi variabel b bertipe int juga, lalu untuk inisialisasi
nilainya, kita berikan variabel a. Cara ini dapat diterapkan pada objek
yang kita buat, dengan membuat sebuah konstruktor yang akan melakukan
inisialisasi dari objek lain. Fungsi ini disebut copy constructor,
seperti yang ditanyakan diatas.

CExample::CExample (const CExample& rv) {
  a=rv.a;  b=rv.b;  c=rv.c;
}
Penjelasan:
Fungsi diatas adalah sebuah konstruktor untuk class CExample, dengan
argumen fungsi adalah sebuah objek dari class yang sama, dinamai dengan
rv. rv dipassing secara reference (dengan adanya operator & pada
argumen). Di dalam badan fungsi, objek rv bisa diakses komponennya
secara langsung, tidak terbatas pada komponen public saja, seperti
contoh diatas (rv.a, rv.b, rv.c). Pada konstruktor kita akan mengisi
nilai komponen pada class dengan nilai yang diinginkan, karena itu, kita
inisialisasi nilai a dengan nilai a dari objek rv, nilai b dengan nilai
b dari objek rv, dan nilai c dengan nilai c dari objek rv.

Ketika kita mendeklarasikan sebuah objek dari class CExample, kita dapat
menuliskan dengan cara berikut ini:
CExample ex (2,3);
CExample ex2 (ex);

Penjelasan:
objek ex dibuat menggunakan konstruktor default dari class CExample.
objek ex2 dibuat menggunakan copy constructor dengan nilai
inisialisasinya didapatkan dari objek ex yang sudah didefinisikan dan
diinisialisasi pada baris sebelumnya. Sama bukan dengan contoh pertama
tadi. Bedanya kalau tadi variabel memiliki tipe dasar, yaitu int, objek
ex dan ex2 ini merupakan objek yang dibentuk dari class CExample.

--
Donny Kurnia
http://hantulab.blogspot.com
http://hantulab.multiply.com

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke