Proses inisialisasi data member di dalam sebuah class dilakukan oleh sebuah fungsi anggota (member function) yang disebut constructor. Fungsi ini bersifat unik karena mempunyai nama yang sama dengan nama class-nya. Fungsi constructor memiliki type return value (nilai kembalian) void namun bisa diberi atau tidak diberi argumen/ parameter. Constructor dijalankan secara otomatis ketika object dari sebuah class dibuat (umumnya di fungsi utama – main). Sedangkan destructor juga dijalankan secara otomatis tapi ketika object dari sebuah class sudah tidak digunakan lagi/ jalannya program sudah keluar dari scope (ruang lingkup) batasan (yaitu batas kurung kurawal – {}). Destructor umumnya dipakai untuk menghapus object dari memori komputer supaya lokasi memori yang sebelumnya ditempatinya bisa dipakai oleh object yang lain. Penulisan fungsi destructor hampir sama dengan constructor, hanya saja di awalnya dituliskan karakter cacing (~). Yang beda dari sebuah destructor adalah tidak adanya parameter/ argumen di dalam header fungsinya.
Di dalam sebuah class dimungkinkan ada lebih dari satu buah fungsi constructor untuk memfasilitasi kebutuhan program yang berbeda-beda. Hal ini disebut dengan istilah multiple constructor. Sedangkan jenis-jenis constructor sendiri setidaknya ada tiga yaitu default constructor, parameterized constructor dan constructor dengan default argument. Yang dimaksud default constructor adalah fungsi constructor yang tidak memiliki argumen/ parameter, dengan kata lain parameternya bertipe void (kosong). Sedangkan parameterized constructor berarti fungsi constructor yang mempunyai parameter, baik satu maupun lebih. Kalau constructor dengan default argument berarti ada salah satu atau lebih parameter fungsi constructor-nya sudah disediakan nilai awal sebagai nilai otomatis yang akan diberikan ketika programmer tidak mencantumkannya.
Contoh implementasi:
#include "iostream.h"
int n;
class mobil
{
int harga,tahun_pembuatan; // private by default
public:
char merk_mobil[10], jenis_mobil[10];
mobil(void)
{
for(int i=0;i<<"Data ke-"<<<<"Merk mobil: "; cin>>merk_mobil;
cout<<"jenis mobil: "; cin>>jenis_mobil;
cout<<"Tahun Pembuatan: "; cin>>tahun_pembuatan;
cout<<"Harga: "; cin>>harga;
cout<<"-------------------------------"<<<"data ke-"<<<"Merk mobil : " << merk_mobil<<"\n";
cout<<"jenis mobil: "; cin>>jenis_mobil;
cout<<"Tahun Pembuatan: "; cin>>tahun_pembuatan;
cout<<"Harga: "; cin>>harga;
cout<<"-------------------------------"<
mobil a1;
}
Tidak ada komentar:
Posting Komentar