RSS

constructor dan destructor

Fungsi & sifat constructor
         Fungsi : Untuk memberi nilai awal suatu class.
         Sifat    : otomatis dijlnkan pada saat objek class diciptakan.
                          tidak bertipe walaupun void sekalipun , dan tdk punya return value.
                          nama constructor = nama class

Destructor
Constructor dipanggil à Ada space di memori yang terpakai à Bebaskan memori setelah selesai àDestructor

Fungsi & sifat destructor
         Fungsi : membebaskan memori yang digunakan variabel dinamis.
         Sifat :
            otomatis dijalankan pada saat objek dilenyapkan.
            tdk terdapat argumen (parameter)/void.
            nama destructor = ~nama class


                               class  A
                               {   private:
                                    ------------
                                    ------------
                                 protected:
                                   ------------
                                    ------------
                                  public:
                                    A(); // konstruktor
                                     ~A(); //destruktor
                                     Void nama_fungsi();
                                    ------------
                               };

                               menciptakan variable obyek
                              
                               void main()

                               {  A variabel_obyek; }

                             Definisi konstruktor
                               A::A(){……….}

                               Definisi destruktor
                                A:: ~ A(){……….}

                               Void A :: nama_fungsi()
                                {definisi fungsi}

Konstruktor / destruktor : public dan tanpa tipe (tanpa void)

Contoh 1

#include <iostream,h>
//deklarasi kelas
class contoh
{ public :
int x,y; //data anggota
contoh();//kostruktor
void onfo();//fungsi anggota
};

int main()
{
 //konstruktor dipanggil
 contoh a;
 a.info();
 //konstruktor dipannggil
 b.info();
 return 0;
}

//definisi konstruktor
contoh::contoh()
cout<<"Konstruktor dijalankan .... ?"<<endl;
x=5;y=10;}

//definisi fungsi
void info()
cout<<"Nilai x ="<<x<<endl;
cout<<"Nilai y ="<<y<<endl;
}


Contoh 2

#include <iostream.h>
//deklarasi kelas
class counter
{
  public:
  int angka; //data anggota
  counter(); //konstruktor
  void naik_satu();
  void info();//fungsi anggota
};

int main()
{
 //konstruktor dipanggil
 counter a;
 cout<<"Nilai awal.."<<endl;
 a.info();
 //konstruktor dipanggil
 cout<<"Nilai angka setelah dinaikkan satu.."<<endl;
 naik_satu();
 info();
 return 0;
}

//definisi konstruktor
counter()::angka(4)
{ cout<<"Konstruktor diberi nilai 4..?"<<endl;
}
//definisi fungsi
void counter:naik_satu()
{ angka ++; }

void counter::info()
{ cout<<"Nilai angka= " <<angka<<endl; }


Contoh 3

#include <iostream.h>
//deklarasi kelas
class bilangan
{
  public :
  int re; //data anggota
  bilangan();//konstruktoe
  ~bilangan();//destruktor
  void info();//fungsi anggota
};

int main()
{
 //konstruktor dipanggil
 bilangan a;
 a.info();
 b.info();
 return 0;
}
//definisi konstruktor
bilangan()::re(10)
{ cout<<"Konstruktor diberi nilai 10..?"<<endl; }
//definisi destruktor
bilangan::~bilangan()
{cout<<"Destruktor dijalankan otomatis..?"<<endl; }
//definisi fungsi info
void info()
{ cout<<"Nilai bilangan ="<<re<<endl; }