Konstruktor adalah fungsi khusus
anggota kelas yang otomatis dijalankan pada saat penciptaan objek
(mendeklarasikan instance). Konstruktor ditandai dengan namanya, yaitu sama
dengan nama kelas. Konstruktor tidak mempunyai tipe hasil (return value).
Biasanya konstruktor dipakai untuk inisialisasi anggota data dan melakukan
operasi lain seperti membuka file dan melakukan alokasi memori secara dinamis.
Meskipun konstruktor tidak harus ada dalam kelas, tetapi jika diperlukan
konstruktor dapat lebih dari satu.
Konstruktor adalah fungsi anggota yang
mempunyai nama yang sama dengan nama kelas.
Kegunaannya :
Mengalokasikan ruang bagi sebuah objek
Memberikan nilai awal terhadap anggota
data suatu objek
Membentuk tugas-tugas umum
lainnya
Adapaun jenis-jenis kontruktor adalah
sebagai berikut:
Konstruktor default : tidak dapat
menerima argumen, anggota data diberi nilai awal tertentu.
Konstruktor penyalinan dengan
parameter : anggota data diberi nilai awal berasal dari parameter.
Konstruktor penyalinan objek lain :
parameter berupa objek lain, anggota data diberi nilai awal dari objek lain.
Contoh penulisan konstruktor :
#include
class jumlah
{
public:
int jumlah1;
int jumlah2;
~jumlah();
};
jumlah objek1,objek2;
void main()
{
cout<<”Didalam main() \n”;
cout<<”objek1.jumlah1 adalah “<<
cout<<”objek1.jumlah2 adalah “<<
cout<<”objek2.jumlah1 adalah “<<
cout<<”objek2.jumlah2 adalah “<<
}
jumlah::~jumlah()
{
cout<<”Didalam jumlah() \n”;
}
DESTRUKTOR
Destruktor adalah pasangan
konstruktor. Pada saat program membuat objek maka secara otomatis kontruktor
akan dijalankan, yang biasanya dimaksudkan untuk memberi nilai awal variable
private. Sejalan dengan itu, C++ menyediakan fungsi destruktor (penghancur atau
pelenyap) yang secara otomatis akan dijalankan pada saat berakhirnya objek.
Setiap kelas mempunyai tepat satu destuktor. jika kita tidak mendeklarasikan
sebuah destruktor dalam sebuah kelas, maka destruktor akan diciptakan sendiri
oeh compiler C++. Fungsi destruktor itu sendiri adalah untuk mendealokasikan
memori dinamis yang diciptakan kontruktor. Nama destruktor sama dengan nama
kelas ditambah awalan karakter tilde (~). Walaupun compiler C++ akan secara
otomatis mendeklarasikan sebuah destruktor, akan tetapi sangat disarankan untuk
mendeklarasikan sendiri sebuah destruktor. Karena dengan mendeklarasikan
sendiri destruktor maka kita mempunyai kontrol penuh terhadap apa yang
dilakukan destruktor dari kelas yang kita buat.
Destruktor adalah fungsi anggota yang
mempunyai nama yang sama dengan nama kelas ditambah symbol tilde (~)
didepannya.
Contoh
penulisan dalam Destruktor :
#include
Class Tpersegi
{
int *lebar, *panjang;
public:
Tpersegi (int, int);
~Tpersegi();
int Luas() {return (*lebar * *panjang);}
};
Tpersegi::Tpersegi(int a, int b)
{
lebar=new int;
panjang=new int;
*lebar = a;
*panjang = b;
}
Tpersegi::~Tpersegi()
{
delete lebar;
delete panjang;
}
int main()
{
Tpersegi pers(3,4), persg(5,6);
cout<<”Luas pers= “<<
cout<<”Luas persg = “<<
return 0;
}
KESIMPULAN
Dari uraian diatas dapat kita
simpulkan bahwa:
Konstruktor :
- Nama kontruktor sama dengan nama
kelas
- Kontruktor tidak mempunyai nilai
balik
- Kontruktor harus diletakkan di bagian public
- Kontruktor dijalankan dengan
sendirinya pada saat objek diciptakan, bahkan kontruktor dijalankan sebelum
fungsi main() dijalankan.
Destruktor:
- Nama destruktor sama dengan nama kelas ditambahkan tanda
tilde (~) di depannya.
- Destruktor tidak mempunyai nilai
balik.
- Destruktor harus diletakkan di bagian
public.
- Destruktor dijalankan dengan
sendirinya pada saat objek akan sirna.
Contoh Lain konstruktor dan destruktor
:
#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h"
class hitung
{
public:
double alas,tinggi,luas,sisi,jari,kel;
void segitiga()
{ cout<<"** Luas
Segitiga **"<
cout<<"Masukkan Alas
= ";cin>>alas;
cout<<"Masukkan Tinggi = ";cin>>tinggi;
luas=(alas*tinggi)/2;
cout<<"Luas Segitiga
= "<<
}
void persegi()
{ cout<<"** Luas
Persegi **"<
cout<<"Masukkan Panjang Sisi = ";cin>>sisi;
luas=sisi*sisi;
cout<<"Luas Persegi
= "<<
}
void llingkaran()
{ cout<<"** Luas
Lingkaran **"<
cout<<"Masukkan Panjang Jari = ";cin>>jari;
luas=3.14*jari*jari;
cout<<"Luas Lingkaran
= "<<
}
void ppanjang()
{ cout<<"** Luas
Persegi Panjang **"<
cout<<"Masukkan Alas
= ";cin>>alas;
cout<<"Masukkan Tinggi
= ";cin>>tinggi;
luas=alas*tinggi;
cout<<"Luas Persegi Panjang
= "<<
}
void kellingkaran()
{
cout<<"** Keliling Lingkaran **"<
cout<<"Masukkan Panjang Jari
= ";cin>>jari;
kel=2*3.14*jari;
cout<<"Keliling Lingkaran
= "<<
}
};
void main()
{
hitung htg;
char tanya;
tanya = 'y';
int pilih;
do {
system ("cls");
cout<<"== KALKULATOR LINDA =="<
cout<<"---------------------------"<
cout<<"1. Mencari Luas Segitiga"<
cout<<"2. Mencari Luas Persegi"<
cout<<"3. Mencari Luas Lingkaran"<
cout<<"4. Mencari Luas Persegi Panjang"<
cout<<"5. Mencari Keliling Lingkaran"<
cout<<"---------------------------"<
cout<<"Masukkan pilihan Anda = ";cin>>pilih;
if (pilih==1)
{ htg.segitiga();} else
if (pilih==2)
{ htg.persegi();} else
if (pilih==3)
{ htg.llingkaran();} else
if (pilih==4)
{ htg.ppanjang();} else
if (pilih==5)
{ htg.kellingkaran();}
cout<<"---------------------------"<
cout<<"Apakah Anda Ingin Mengulanginya ..? ";
cin>>tanya;
} while (tanya == 'y');
}