Konstruktor dan Destruktor pada OOP C++
Contoh Program Konstruktor dan Destruktor pada OOP C++ |
Dalam Object Oriented Programming terdapat istilah konstruktor dan destruktor. Lalu, apa yang dimaksud dengan Konstruktor dan Destruktor?. Berikut penjelasannya.
KONSTRUKTOR
Konstruktor adalah fungsi anggota dari suatu kelas yang secara otomatis dijalankan ketika suatu objek diciptakan. Konstruktor mempunyai aturan sebagai berikut,
1) Nama Konstruktor harus sama dengan nama kelas yang mendefiniskannya,
2) Konstruktor tidak memiliki nilai balik,
3) Konstruktor harus diletakkan pada bagian public.
Konstruktor biasanya
digunakan untuk,
1) Melakukan
alokasi memori,
2) Memberikan
nilai awal terhadap anggota kelas (atau disebut inisialisasi), dan melakukan
tugas umum lainnya.
DESTRUKTOR
Destruktor
adalah fungsi anggota dari suatu kelas yang akan dijalankan secara otomatis
pada saat objek akan sirna/hilang. Nama dari destruktor sama dengan nama
kontruktor, hanya saja diawali dengan karakter ‘ ~ ’. Destruktor banyak
digunakan untuk melakukan operasi dealokasi memori.
Contoh
class yang di dalamnya terdapat konstruktor dan destruktor :
class
Mobil
{
private :
int roda, pintu;
char warna[10];
public :
Mobil();
//Konstruktor
~Mobil();
//Destruktor
void info();
}
Berikut ini contoh program
yang menggunakan Konstruktor dan Destruktor :
/*
Compiler : Visual C++ 2008
*/
#include <iostream>
using namespace std;
#include <conio.h>
class Rumah
{
private :
int pintu, jendela;
char *warna;
public :
//konstruktor
//konstruktor
Rumah(int jum_pintu, int jum_jendela, char
*warna_rumah);
~Rumah(); //destruktor
void info();
};
int main()
{
cout<<"//Awal fungsi
main..."<<endl;
Rumah obj(2,4,"Putih");
cout<<endl;
cout<<"DATA RUMAH"<<endl;
cout<<"----------"<<endl;
obj.info();
cout<<endl;
cout<<"//Akhir fungsi
main..."<<endl;
return 0;
}
void
Rumah::info()
{
//menampilkan hasil ke layar
cout<<"Jumlah pintu : "<<pintu<<endl;
cout<<"Jumlah jendela :
"<<jendela<<endl;
cout<<"Warna Rumah : "<<warna<<endl;
}
Rumah::Rumah(int jum_pintu, int
jum_jendela, char *warna_rumah)
{
cout<<"//Objek dibuat,
kontruktor dijalankan... "<<endl;
warna = new char[25]; //alokasi memori
strcpy(warna, warna_rumah);
pintu = jum_pintu;
jendela = jum_jendela;
}
Rumah::~Rumah()
{
cout<<"//Objek akan
sirna, destruktor dijalankan..."<<endl;
delete [] warna; //dealokasi memori
_getche();
//getche() diletakkan di sini hanya
untuk menampilkan hasil
}
Output
//Awal fungsi main...
//Objek dibuat, kontruktor dijalankan...
DATA RUMAH
----------
Jumlah pintu : 2
Jumlah jendela : 4
Warna Rumah : Putih
//Akhir fungsi main...
//Objek akan sirna, destruktor dijalankan...
//Objek dibuat, kontruktor dijalankan...
DATA RUMAH
----------
Jumlah pintu : 2
Jumlah jendela : 4
Warna Rumah : Putih
//Akhir fungsi main...
//Objek akan sirna, destruktor dijalankan...
Penjelasan :
- Pada program di atas, konstruktor digunakan
untuk melakukan operasi inisialisasi dan melakukan alokasi memori. Dengan
menggunakan konstruktor kita bisa sedikit ‘berhemat’ dengan tidak membuat suatu
fungsi yang secara khusus diciptakan untuk melakukan suatu inisialisasi, namun
cukup dengan menggunakan suatu konstruktor.
- Konstruktor secara otomatis dijalankan saat objek ‘obj’
diciptakan (tanpa memerlukan pemanggilan), sedangkan destruktor secara otomatis dijalankan
pada saat objek akan sirna/hilang (tanpa memerlukan pemanggilan).
- Walaupun fungsi main selesai dijalankan,
compiler masih menuju ke fungsi destruktor.
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih