Penjelasan Destructor

Posted on   Maret 19, 2019   |   Last Modified   Maret 19, 2019
Destructor

Penjelasan Destructor

Destructor merupakan kebalikan dari constructor, Destructor adalah spesial member function yang akan dieksekusi saat sebelum penghapusan object atau berakhirnya program. destructor biasanya berisi tugas untuk melakukan persiapan sebelum object tersebut dihapus.

Untuk mendirikan destructor sama seperti kita mendirikan constructor tapi dibutuhkan tanda ~ yang diletakan pada awal dari identitas destructor.

Bentuk penulisan

class nama_class{
	public :
	~nama_class(){
		//Definisi Destructor
	}
}

Karakteristik Destructor:

  1. Destructor memiliki identitas yang sama seperti classnya, dan memiliki tanda ~ pada awal identitas destructor.
  2. Destructor tidak memiliki return type.
  3. Destructor harus berada dalam label public.
  4. Destructor tidak mempunyai parameter.
  5. Destructor tidak bisa dipanggil dari luar class dan bisa di panggil dari dalam member function pada class tersebut (Tapi tidak disarankan).

Destructor akan dieksekusi saat sebelum object tersebut dihapus atau di saat program selesai, Destructor memberi kemudahan untuk para programmer, untuk melakukan persiapan yang dibutuhkan sebelum object itu dihapus. Biasanya digunakan untuk mengerjakan beberapa tugas seperti menyimpan data, melepaskan memori dinamis yang dipesan saat object berjalan, menutup file dan lain sebagainya.

Destructor tidak bisa memilki parameter, dan juga berarti destructor tidak bisa digunakan untuk overloading (Satu class hanya memiliki satu Destructor).

Contoh Program

#include <iostream>
#include <string>
using namespace std;

class siswa{
private:
    string nama;
public:
    siswa(string); //Constructor
    ~siswa(); //Destructor
};
//Definisi ember Functon
siswa::siswa(string iNama){ //Constructor
    nama = iNama;
    cout<<nama<<" = Constructor Terpanggil"<<endl;
}

siswa::~siswa(){ //Destructor
    cout<<nama<<" = Destructor Terpanggil"<<endl;
}

int main(){
    siswa budi("Budi"); //Constructor Dipanggil
    siswa *pBudi=new siswa("pBudi");//Constructor Dipanggil

    delete pBudi;//Destructor Dipanggil
    return 0;
}//Destructor Dipanggil

Di atas adalah contoh program yang mencontohkan cara menggunakan destructor. Dan membuktikan ciri khas destructor yang akan diproses ketika object akan dihapus.

Di baris pertama pada fungsi utama terdapat pernyataan untuk mendirikan object biasa dengan nama budi. Dan baris kedua terdapat deklarasi object pointer dengan menunjuk ke memori yang telah di alokasikan.

Baca :   Penjelasan Diamond Inheritance (Warisan Berlian)

Baris selanjutnya adalah pernyataan yang akan berfungsi untuk menghapus pBudi, dari tindakan penghapusan tersebut compiler akan memanggil destructor dari class yang digunakan. Dan destructor dari object budi akan dipanggil pada saat compiler bertemu tanda } di fungsi utama (Berakhirnya program).

Contoh Program

#include <iostream>
using namespace std;

class angka{
private:
    int *arr;
    int panjang;
public:
    angka(int); //Constructor
    ~angka(); //Destructor
    void cetakData();
    void isiData();
};
//Definisi member Functon
angka::angka(int i){ //Constructor
    panjang = i;
    arr = new int[i];
    isiData();
}

angka::~angka(){ //Destructor
    cout<<endl;
    cetakData();
    delete[]arr;
    cout<<"Alamat Array Sudah Dilepaskan"<<endl;
}

void angka::cetakData(){
    for(int i=1;i<=panjang;i++){
        cout<<i<<" = "<<arr[i]<<endl;
    }
}

void angka::isiData(){
    for(int i=1;i<=panjang;i++){
        cout<<i<<" = ";cin>>arr[i];
    }
    cout<<endl;
}

int main(){
    angka belajarcpp(3); //Constructor Dipanggil
    angka *ptrBelajarcpp = new angka(5); //Constructor Dipanggil
    delete ptrBelajarcpp; //Destructor Dipanggil

    return 0;
}//Destructor Dipanggil 


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *